'자바스크립트'에 해당되는 글 37건

  1. 2011/03/15 Javascript - Ajax module on OWA(MS Outlook Web Apps.)
  2. 2010/04/10 JSINQ - LINQ With JavaScript
  3. 2010/02/18 Javascript - Element Opacity Control for Cross Browser
  4. 2009/07/20 Javascript : Microsoft OS & Internet Explorer Agent Check
  5. 2009/07/16 2009년 07월 16일 - sunyruru 미투데이 일기장
  6. 2009/03/21 sunyruru의 미투데이 - 2009년 3월 20일
  7. 2009/02/17 스크립트에서 클라이언트 프로그램 실행 시키는 방법 (3)
  8. 2009/01/05 [js]브라우저의 오른쪽 상단의 X표시를 누르거나 창을 닫을때 이벤트 잡기! (1)
  9. 2008/05/23 다양한 HTML 소스복사 / 마우스 우클릭 방지 모음 (2)
  10. 2008/03/06 드래그 드랍(Drag and Drop) 으로 개체의 정보 다루기
2011/03/15 22:15

Javascript - Ajax module on OWA(MS Outlook Web Apps.)


잠시 참고용으로 분석한 내용;


var POST="POST";
var GET="GET";
if(!g_fModuleLoaded)var g_fModuleLoaded={};
if(!g_fModuleLoaded[".\\dom/ajaxrequest.js".toLowerCase()])(function(){
 Type.createNamespace("Owa.Dom");
 var fChecked=false;
 var fUseNative=true;
 var rgRequests=[];
 Owa.Dom.AjaxRequest = function Owa$Dom$AjaxRequest(sUrl,sCmd,oCtx,cb,fSync,fNeverDispose){
  var oXHR;
  if(fChecked){
   oXHR=fUseNative ? new XMLHttpRequest() : new ActiveXObject("MSXML2.xmlhttp")
  }
  else
  {
   try
   {
    oXHR=new XMLHttpRequest();
    fUseNative=true
   }
   catch(e)
   {
    oXHR=new ActiveXObject("MSXML2.xmlhttp");
    fUseNative=false
   }
   fChecked=true
  }
  this.oXmlHttp=oXHR;
  this.oXmlHttp.open(sCmd,sUrl,!fSync);
  this.sUrl=sUrl;
  this.oCtx=oCtx;
  this.fSync=fSync;
  this.fLock=false;
  this._fNeverDispose=!!fNeverDispose;
  this.iIndex=rgRequests.length;
  rgRequests.push(this);
  if(cb){
   this.cb=cb;
   if(!fSync){
    this.oXmlHttp.onreadystatechange=new Function("Owa.Dom.AjaxRequest._cbOnReadyStateChange("+this.iIndex+");")
   }
  }
  Owa.Dom.AjaxRequest.get_OnRequestCreated().dispatch(this)
 };
 Owa.Dom.AjaxRequest.prototype.send=function Owa$Dom$AjaxRequest$send(sBody){
  if(isDf(typeof(sBody))){
   this.oXmlHttp.send(sBody)
  }
  else{
   this.oXmlHttp.send(null)
  }
  if(this.fSync){
   return this.onComplete()
  }
  else{
   return null
  }
 };
 Owa.Dom.AjaxRequest.prototype.setRequestHeader=function Owa$Dom$AjaxRequest$setRequestHeader(sHeaderName,sHeaderValue){
  this.oXmlHttp.setRequestHeader(sHeaderName,sHeaderValue)
 };
 Owa.Dom.AjaxRequest.prototype.cancelCallback=function Owa$Dom$AjaxRequest$cancelCallback(){
  if(this.fLock)throw"cannot cancel the callback when it is already finished or cancelled";
  this.fLock=true;
  rgRequests[this.iIndex].oXmlHttp.abort();
  delete rgRequests[this.iIndex]
 };
 Owa.Dom.AjaxRequest.prototype.onComplete=function Owa$Dom$AjaxRequest$onComplete(){
  if(!this.fLock)
  {
   this.fLock=true;
   Owa.Dom.AjaxRequest.get_OnResponseReceived().dispatch(this);
   var oCallbackResult=null;
   if(this.cb!=null)oCallbackResult=this.cb(this);
   delete rgRequests[this.iIndex];
   Owa.Dom.AjaxRequest.get_OnCallbackCompleted().dispatch(this);
   return oCallbackResult
  }
 };
 Owa.Dom.AjaxRequest._cbOnReadyStateChange=function Owa$Dom$AjaxRequest$_cbOnReadyStateChange(i){
  var oRequest=rgRequests[i];
  if(oRequest&&4==oRequest.oXmlHttp.readyState){
   if(0==oRequest.oXmlHttp.status&&(Owa.Utility.isFirefox()||Owa.Utility.isSafari())){
    oRequest.cancelCallback()
   }
   else{
    oRequest.onComplete()
   }
  }
 };
 Owa.Dom.AjaxRequest.disposeAjaxRequests=function Owa$Dom$AjaxRequest$disposeAjaxRequests(){
  for(var i=0;i<rgRequests.length;i++){
   if(rgRequests[i]){
    var oR=rgRequests[i];
    if(oR._fNeverDispose)continue;
    Owa.Dom.AjaxRequest.abortAnXMLHttpRequest(oR.oXmlHttp);
    rgRequests[i]=null
   }
  }
 };
 Owa.Dom.AjaxRequest.abortAjaxRequests=function Owa$Dom$AjaxRequest$abortAjaxRequests(sNs,oCmd){
  var oR=null;
  for(var i=0;i<rgRequests.length;i++){
   oR=rgRequests[i];
   if(oR&&oR.oCtx&&isDf(typeof(oR.oCtx.sNs))&&(oR.oCtx.sNs==sNs)&&isDf(typeof(oR.oCtx.sEv))&&isDf(typeof(oCmd[oR.oCtx.sEv]))){
    if(oR.fLock) continue;
    oR.fLock=true;
    Owa.Dom.AjaxRequest.abortAnXMLHttpRequest(oR.oXmlHttp);
    rgRequests[i]=null
   }
  }
 };
 Owa.Dom.AjaxRequest.abortAnXMLHttpRequest=function Owa$Dom$AjaxRequest$abortAnXMLHttpRequest(oX){
  if(isDf(typeof(oX))&&oX&&isDf(typeof(oX.abort))){
   try{
    oX.onreadystatechange=function(){};
    oX.abort()
   }
   catch(e){}
  }
 };
 var ON_REQUEST_CREATED="onRequestCreated";
 var ON_RESPONSE_RECEIVED="onResponseReceived";
 var ON_CALLBACK_COMPLETED="onCallbackCompleted";
 var _oStaticEvents={};
 _oStaticEvents[ON_REQUEST_CREATED]=new Owa.Utility.EventHandlerCollection();
 _oStaticEvents[ON_RESPONSE_RECEIVED]=new Owa.Utility.EventHandlerCollection();
 _oStaticEvents[ON_CALLBACK_COMPLETED]=new Owa.Utility.EventHandlerCollection();
 Owa.Dom.AjaxRequest.get_OnRequestCreated=function Owa$Dom$AjaxRequest$get_OnRequestCreated(){
  return _oStaticEvents[ON_REQUEST_CREATED]
 };
 Owa.Dom.AjaxRequest.get_OnResponseReceived=function Owa$Dom$AjaxRequest$get_OnResponseReceived(){
  return _oStaticEvents[ON_RESPONSE_RECEIVED]
 };
 Owa.Dom.AjaxRequest.get_OnCallbackCompleted=function Owa$Dom$AjaxRequest$get_OnCallbackCompleted(){
  return _oStaticEvents[ON_CALLBACK_COMPLETED]
 }
})();
g_fModuleLoaded[".\\dom/ajaxrequest.js".toLowerCase()]=1;
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

'Web > JavaScript' 카테고리의 다른 글

Javascript - document.execCommand Method  (0) 2011/07/19
Javascript - Ajax module on OWA(MS Outlook Web Apps.)  (0) 2011/03/15
for Javascript  (0) 2011/03/08
Javascript - Selection text of web page  (0) 2011/03/05
Persisting Collapsible TOC State  (0) 2011/03/02
Add Twitter to your blog  (2) 2010/11/05
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/655 관련글 쓰기

2010/04/10 13:53

JSINQ - LINQ With JavaScript

출처 : http://hoons.kr/Board.aspx?Name=info&Mode=2&BoardIdx=33168


훈스닷넷에서 재미있는 글을 발견해서 아래처럼 스크랩 해왔습니다 ^ ^

Javascript에서 LINQ 문법을 사용할 수 있다는 점이 정말 재밌네요~

아래 글을 참고해주세요 ~~








Ajaxian에서 어제 흥미로운 기사를 봐서 블로깅후에 훈스닷넷 개시판에도 남깁니다.
 
JSINQ란 녀석이구요.
 
자바스크립트의 객체나 데이터를 Enumerable 한객체로 변경한뒤에 LINQ문법을 사용할수 있는데요.
제어폭도 생각보다 넓고 놀라운건 .NET 프레임웍 3.5의 연산자를 모두 지원하구요.(ajaxian에는 3.0이라고 나와있는데 codeplex문서는 3.5군요) generic의 확장함수또한 비슷한형식으로 지원하며.. 4.0의 zip머시기 (먼지모름) 도 지원한다고하내요.
 
자세한 내용은 해당테스트 페이와 관련 문서 자료가서셔 보시면 알겠지만 테스트페이지에서 보면 신기하긴하군요.
 
해당테스트페이지 바로가기

관련문서 및 자료
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License

'Web > JavaScript' 카테고리의 다른 글

Persisting Collapsible TOC State  (0) 2011/03/02
Add Twitter to your blog  (2) 2010/11/05
JSINQ - LINQ With JavaScript  (0) 2010/04/10
Javascript - Element Opacity Control for Cross Browser  (0) 2010/02/18
Ext JS 3.0  (0) 2009/09/23
Javascript : Microsoft OS & Internet Explorer Agent Check  (0) 2009/07/20
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/560 관련글 쓰기

2010/02/18 16:00

Javascript - Element Opacity Control for Cross Browser


자바스크립트로 HTML Element의 투명도(Opacity)를 조절하는 경우 크로스 브라우저(Cross Browser)를 지원하기 위해 삽질을 하게 된다.

이럴 때 아래 코드를 이용하자



        function setOpacity(id, opacity) {
            var object = id.style;

            object.opacity = (opacity / 100);
            object.filter = "alpha(opacity=" + opacity + ")";
            object.MozOpacity = (opacity / 100);
            object.KhtmlOpacity = (opacity / 100);
        }





 

저작자 표시 비영리 변경 금지
이 장소를 Daum지도에서 확인해보세요.
서울특별시 영등포구 여의동 | 서울 영등포구 여의도동
도움말 Daum 지도
크리에이티브 커먼즈 라이선스
Creative Commons License

'Web > JavaScript' 카테고리의 다른 글

Add Twitter to your blog  (2) 2010/11/05
JSINQ - LINQ With JavaScript  (0) 2010/04/10
Javascript - Element Opacity Control for Cross Browser  (0) 2010/02/18
Ext JS 3.0  (0) 2009/09/23
Javascript : Microsoft OS & Internet Explorer Agent Check  (0) 2009/07/20
Javascript – 이벤트 추가  (0) 2009/05/08
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/525 관련글 쓰기

2009/07/20 12:26

Javascript : Microsoft OS & Internet Explorer Agent Check

 

 

Web Page에서 브라우저와 OS에 따라 다른 조치를 해야 하는 경우가 있습니다.

 

그래서 브라우저에서 받아올 수 있는 User Agent 값을 분석해서 이에 이용하게 되죠.

 

다음과 같이 값을 체크하는 부분을 공통으로 작성하여 가져다가 쓰면 좋을 것 같네요.

 

 

 

 

테스트 페이지(Test page): BrowserTest.html

 

<html>

<head>

<title>Browser Agent Test</title>

<script type="text/javascript">

   

function BrowserIs()

{

var agt = navigator.userAgent.toLowerCase();

this.osver = 1.0;

 

if (agt)

{

var stOSVer = agt.substring(agt.indexOf("windows ") + 11);

this.osver = parseFloat(stOSVer);

}

 

this.major = parseInt(navigator.appVersion);

this.nav = ((agt.indexOf('mozilla')!=-1)&&((agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible')==-1)));

        this.nav2 = (this.nav && (this.major == 2));

this.nav3 = (this.nav && (this.major == 3));

this.nav4 = (this.nav && (this.major == 4));

this.nav6 = this.nav && (this.major == 5);

this.nav6up = this.nav && (this.major >= 5);

this.nav7up = false;

   

if (this.nav6up)

{

var navIdx = agt.indexOf("netscape/");

if (navIdx >=0 )

this.nav7up = parseInt(agt.substring(navIdx+9)) >= 7;

}

   

this.ie = (agt.indexOf("msie")!=-1);

this.aol = this.ie && agt.indexOf(" aol ")!=-1;

   

if (this.ie)

{

var stIEVer = agt.substring(agt.indexOf("msie ") + 5);

this.iever = parseInt(stIEVer);

this.verIEFull = parseFloat(stIEVer);

}

else

this.iever = 0;

   

this.ie3 = ( this.ie && (this.major == 2));

this.ie4 = ( this.ie && (this.major == 4));

this.ie4up = this.ie && (this.major >=4);

this.ie5up = this.ie && (this.iever >= 5);

this.ie55up = this.ie && (this.verIEFull >= 5.5);

this.ie6up = this.ie && (this.iever >= 6);

this.ie7up = this.ie && (this.iever >= 7);

this.ie8up = this.ie && (this.iever >= 8);

this.win16 = ((agt.indexOf("win16")!=-1)

|| (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1)

|| (agt.indexOf("windows 16-bit")!=-1) );

this.win31 = (agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||

(agt.indexOf("windows 16-bit")!=-1);

this.win98 = ((agt.indexOf("win98")!=-1)||(agt.indexOf("windows 98")!=-1));

this.win95 = ((agt.indexOf("win95")!=-1)||(agt.indexOf("windows 95")!=-1));

this.winnt = ((agt.indexOf("winnt")!=-1)||(agt.indexOf("windows nt")!=-1));

this.win32 = this.win95 || this.winnt || this.win98 ||

((this.major >= 4) && (navigator.platform == "Win32")) ||

(agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1);

this.os2 = (agt.indexOf("os/2")!=-1)

|| (navigator.appVersion.indexOf("OS/2")!=-1)

|| (agt.indexOf("ibm-webexplorer")!=-1);

this.mac = (agt.indexOf("mac")!=-1);

this.mac68k = this.mac && ((agt.indexOf("68k")!=-1) ||

(agt.indexOf("68000")!=-1));

this.macppc = this.mac && ((agt.indexOf("ppc")!=-1) ||

(agt.indexOf("powerpc")!=-1));

this.w3c = this.nav6up;

}

   

function ObjectStripShow(obj, outputDivId)

{

var outputStr = "";

 

for (var i in obj) outputStr += i + " = " + eval('obj.' + i) + "<br/>\n";

if (outputDivId == null || document.getElementById(outputDivId) == null)

document.write(outputStr);

else

document.getElementById(outputDivId).innerHTML = outputStr;

}

   

window.onload = function()

{

var bi = new BrowserIs();

ObjectStripShow(bi, 'output');

};

   

</script></head>

<body>

<div id="output">

</div>

</body>

</html>


 

 

 

 

결과(Result ):

 

osver = 5.2
major = 4
nav = false
nav2 = false
nav3 = false
nav4 = false
nav6 = false
nav6up = false
nav7up = false
ie = true
aol = false
iever = 7
verIEFull = 7
ie3 = false
ie4 = true
ie4up = true
ie5up = true
ie55up = true
ie6up = true
ie7up = true
ie8up = false
win16 = false
win31 = false
win98 = false
win95 = false
winnt = true
win32 = true
os2 = false
mac = false
mac68k = false
macppc = false
w3c = false


저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/483 관련글 쓰기

2009/07/16 11:37

2009년 07월 16일 - sunyruru 미투데이 일기장

  • OCS의 DMessengerEvents::OnContactStatusChange (http://msdn.microsoft.com/en-us/library/bb758796.aspx) . Scriptable 이라고 써있으니 스크립트에서 처리가능해야 하는데 왜 안되냐..ㅡㅡ(me2DC Microsoft,OCS,Communicator,API,UC,OnContactStatusChange,DMessengerEvents)2009-07-08 16:06:25
  • 자바스크립트 유용한 함수들을 잘 정리해둔 사이트를 찾았당… 유후~ 나중에도 쓸만한 내용이 많겠군.. 훗~(me2DC 자바스크립트,javascript,함수,사이트,webtoolkit)2009-07-14 19:19:55
  • 브라우져의 주소 부분에 javascript:var w=window.document;var p=w.plugins;for(var i in w)w.writeln(i+“=”+eval('w.'+i)+“<br/>”); 이렇게 실행하면 document개체의 값을 볼 수 있네요.(me2DC javascript,자바스크립트,window,document,개체,덤프,dump)2009-07-15 10:12:29
  • 아오.. C++ ATL COM 개체에서 받은 이벤트를 어떻게 JavaScript로 콜백해줘야 하는거냐 ㅠㅠ어렵다 제기랄…(me2DC C++,ATL,COM,ActiveX,Javascript,자바스크립트,CallBack,콜백,이벤트,Event,Internet Explorer)2009-07-15 14:47:00
  • 우리 진상.. 얼마나 피곤했으면 신입이 한시간을 라커룸에서 업무시간에 잤을까 -_ -;; 그래도 조심해야지 신입인데.. 조심좀 해~(me2DC 진상,신입,미쳤어,잠)2009-07-15 16:48:19
  • Silverlight 2 Unit Test를 .net계의 멋진 행님 스캇 구슬이 님이 만드셨나부다. Visual Studio랑 연계도 되고.. Silverlight 2.0 용으로 브라우져에서 GUI 환경으로 유닛 테스트가 되니 꽤 좋은것 같다…(me2DC Silverlight,스캇구스리,Visual studio,유닛테스트,Unit Test)2009-07-15 20:08:39

이 글은 sunyruru님의 2009년 7월 8일에서 2009년 7월 15일까지의 미투데이 내용입니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/476 관련글 쓰기

2009/03/21 04:31

sunyruru의 미투데이 - 2009년 3월 20일

이 글은 sunyruru님의 2009년 3월 20일의 미투데이 내용입니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/436 관련글 쓰기

2009/02/17 13:25

스크립트에서 클라이언트 프로그램 실행 시키는 방법


일단 이건 MS IE 전용이라는 가정이 있어야하고 -_ -;

먼저 클라이언트에 "C:\winetc\eMule\emule.exe" 파일(실행파일)이 있다고 가정한다.

보안문제가 발생할 수 있으므로, "신뢰할 수 있는 사이트"에 등록되어 있어야 사용 가능한 스크립트입니다.

 
작성 HTML

 

<html>
<head><head>
<script language="javascript">
function aa()
{
    var objWSH = new ActiveXObject("WScript.Shell");
    var retval = objWSH.Run("C:\\winetc\\eMule\\emule.exe",1,true);
}
</script>

<body>
<input type="button" name="test" onclick="aa();">
</body>
</html>

과연 써먹을 구석이 있긴 한걸지 -_ -;;

그래도..

HTA application(MSDN을 찾아보시길;)을 만든다면 써먹지 않을지 생각된다;
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 3

Trackback : http://i-ruru.com/trackback/376 관련글 쓰기

  1. JKwang 2009/04/23 23:31 address edit & del reply

    질문있습니다만.위와같이 하면 "자동화 서버는 개체를 작성할 수 없습니다."라고 자바스크립트 에러가 나오는데 해결방안이 있는지요???
    신뢰할수있는싸이트에 등록해주었고 로컬이랑 인터넷 영역에 안전하지않은 스크립팅~~~ 사용으로 해주었습니다.ㅠ_ㅠ;;

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2009/04/24 02:51 address edit & del

      마지막줄에 적어둔 내용대로 웹 페이지 상에서는 스크립트 권한 문제로 사용하지 못하는 경우가 많습니다.
      그래서 HTA 프로그램 등에만 사용하셔야할 것 같습니다.

      위 코드를 응용해서 *.hta 확장자로 windows 로컬에서만 작동하는 프로그램을 개발할 때 유용하죠.

      일반적으로 CD에 들어있는 autorun에 실행될 설치 페이지나 cd 목록 페이지를 만들때 자주 사용되는 *.hta에 적용하기 좋은 내용입니다.

  2. JKwang 2009/04/24 11:15 address edit & del reply

    그런내용이었군요^^감사합니다~!!

2009/01/05 11:40

[js]브라우저의 오른쪽 상단의 X표시를 누르거나 창을 닫을때 이벤트 잡기!


창의 오른쪽 상단의 X표시를 누르거나 창을 닫을때 이벤트 잡기
비밀은 onbeforeunload 이벤트 였군요.
아래와 같은 코드 작성시 창을 닫게 되면 아래의 그림이 나타납니다.
==============================================================================
<HTML>
<HEAD>
<SCRIPT>
function closeIt()
  {
    event.returnValue = "푸클클 정말 닫아? 진짜루?";
  }
</SCRIPT>
</HEAD>
<BODY onbeforeunload="closeIt()">
    <a href="http://www.microsoft.com">Click here to navigate to 
        www.microsoft.com</a>
</BODY>
</HTML>

==============================================================================

간단하네요..
까먹지만 않는다면 ㅎㅎ

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 1

Trackback : http://i-ruru.com/trackback/375 관련글 쓰기

  1. 별로 소용이 없을듯.. 2009/06/22 15:54 address edit & del reply

    새로고침 할때도 뜨는군요...

2008/05/23 09:54

다양한 HTML 소스복사 / 마우스 우클릭 방지 모음

* 프로그래밍하다가 소스 막기가 필요한 곳이 많아 보여서 몇개의 팁을 정리했습니다.

   주의할 점은 소스에서 설정을 해 놓아도 HTML내에 Iframe이 있는 경우 Iframe안에 있는

   다른 html에는 설정이 안 된다는 점입니다.

   그래서 상태바에 링크 주소 막기 같은 경우는 꽁수로

   

   function status_message()
  {
         window.status = "";
  }
  setInterval("status_message()",1)


  이런 식으로 쓰는 경우도 있습니다. 계속적으로 상태바의 주소글자를 바꿔주는 아주 안 좋은

  방식입니다. (그리고 아주 잠깐은 소스가 보입니다. = =;)

  아무튼 Iframe, modal 등이 아닌 곳은 다 적용됩니다.



<목차>


1. 마우스 오른쪽메뉴, 드래그, 선택복사 금지하기
2. 마우스 오른쪽 버튼 클릭시 경고 메세지
3. 프레임 소스보기 막기
4. 새로고침(F5), 전체창(F11) 막기
5. shift, ctrl 키 클릭하면 경고메세지 띄우기
6. 동영상 마우스 오른쪽 메뉴 막기

7. 상태바의 링크 주소 감추기

8. 익스플로러 6의 이미지 도구모음(저장버튼 등) 뜨는 것 막기.
9. 무단링크 금지 스크립트
 

1. 마우스 오른쪽메뉴, 드래그, 선택복사 금지하기

<body oncontextmenu='return false' ondragstart='return false' onselectstart='return false'>

oncontextmenu='return false' : 마우스 오른쪽 메뉴 금지
ondragstart=return false : 드래그 금지
onselectstart='return false' : 선택복사 금지

참고 onkeydown="return false" 키보드 완전 금지


 

2. 마우스 오른쪽 버튼 클릭시 경고 메세지
<script language=JavaScript>function click() {if ((event.button==2) || (event.button==2)) {alert('죄송합니다. 오른쪽 마우스 금지입니다. - 태그인넷 ');}}document.onmousedown=click// --></script>


3. 프레임 소스보기 막기

<script language="JavaScript">
if(parent.frames.length <= 0) { top.location.href="http://tagin.net"; }
</script>

프레임을 쓰는 홈페이지에서 프레임 페이지가 아닌 하위 프레임으로 직접 들어갔을 때 http://tagin.net으로 이동하는 예제입니다
head에 넣어주세요


4. 새로고침(F5), 전체창(F11) 막기

<SCRIPT LANGUAGE="JavaScript">
<!-- www.tagin.net
function processKey()
{
        if( (event.ctrlKey == true && (event.keyCode == 78 || event.keyCode == 82)) ||
        (event.keyCode >= 112 && event.keyCode <= 123) || event.keyCode == 8)
            {
        event.keyCode = 0;
        event.cancelBubble = true;
        event.returnValue = false;
            }
}
document.onkeydown = processKey;
-->
</script>



5. shift, ctrl (쉬프트, 컨트롤)키 클릭하면 경고메세지 띄우기

<script language="JavaScript">
<!-- www.tagin.net
function click() {
     if((event.ctrlKey) || (event.shiftKey)) {
       alert('키를 사용할 수 없습니다.');
     }
   }
document.onmousedown=click;
document.onkeydown=click;
-->
</script>

 
6. 동영상 마우스 오른쪽 버튼 막기

<embed src="http://tagin.net/js/1.wmv" EnableContextMenu="false" >

<object classid='clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95' id='MediaPlayer1' width="580" height="387">
  <param name='AudioStream' value='-1'>
  <param name='AutoSize' value='false'>
  <param name='AutoStart' value='true'>
  <param name='AnimationAtStart' value='true'>
  <param name='AllowChangeDisplaySize' value='true'>
  <param name='BufferingTime' value='5'>
  <param name='DisplayBackColor' value='0'>
  <param name='DisplayForeColor' value='16777215'>
  <param name='Enabled' value='true'>
 
 <param name='EnableContextMenu' value='false'>
  <param name='EnableTracker' value='true'>
  <param name='Mute' value='false'>
  <param name='PlayCount' value='1'>
  <param name='Rate' value='1'>
  <param name='ShowCaptioning' value='1'>
  <param name='ShowControls' value='true'>
  <param name='ShowAudioControls' value='true'>
  <param name='ShowDisplay' value='false'>
  <param name='ShowGotoBar' value='false'>
  <param name='ShowPositionControls' value='true'>
  <param name='ShowStatusBar' value='false'>
  <param name='ShowTracker' value='true'>
  <param name='TransparentAtStart' value='false'>
  <param name='Volume' value='-110'>
  <param name="FileName" value="http://tagin.net/js/1.wmv">
  <param NAME="SAMIFileName" VALUE="자막주소">
</object>

동영상 태그(embed, object) 자세히 보기
 
7. 상태바의 링크 주소 감추기

<script language=JavaScript>
setInterval("x()",1);
function x(){window.status="태그인넷"}
</script>
 <A href="http://tagin.net">태그인넷</a>

다른 소스

<a href="http://tagin.net" onmouseover="self.status='태그인넷';return true" onmouseout="self.status=' 태그인넷';return true">링크 </a>

<head>
<script language="JavaScript">
<!--

function hidestatus()
{
window.status='태그인넷'
return true
}
if (document.layers)
document.captureEvents(Event.mouseover | Event.mouseout)
document.onmouseover=hidestatus
document.onmouseout=hidestatus

// -->
</script>
</head>

 
8. 익스플로러 6의 이미지 도구모음(저장버튼 등) 뜨는 것 막기.
<HEAD><META http-equiv="imagetoolbar" content="no"></HEAD>
 
9. 무단링크 금지 스크립트
<script language='JavaScript'>
//link1 과 link2 지정해 넣은 홈을 통해서 들어오지 않으면 무단링크 취급 기본홈페이지로 열리는 소스
var home_url="http://www.tagin.net";   // 기본 홈페이지
var link1="http://tagin.net/";
var link2="http://www.naver.com/";
if (document.referrer.indexOf(home_url)==-1 && document.referrer.indexOf(link1)==-1 && document.referrer.indexOf(link2)==-1) {
        if (document.referrer) {
           alert("무단링크 하셨습니다.!");  // 무단링크시 에러 메세지
                window.location=home_url;  // 기본 홈으로 이동
        } else {
           alert("무단링크 하셨습니다. ");  // 무단링크시 에러 메세지
        window.location=home_url;  // 기본 홈으로 이동
        }
}
</script>

크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 2

Trackback : http://i-ruru.com/trackback/334 관련글 쓰기

  1. Favicon of http://spiegel04.tistory.com BlogIcon 카르사마 2010/06/06 17:56 address edit & del reply

    많은 도움 받고 갑니다~

    • Favicon of http://i-ruru.com BlogIcon 써니루루 2010/06/08 19:24 address edit & del

      도움 되셨다니 다행이에요 ^ ^

2008/03/06 15:52

드래그 드랍(Drag and Drop) 으로 개체의 정보 다루기

http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/overview/DataTransferOverviewEX.htm

드래그 드랍 이벤트에 따라 개체에 데이터를 담아 처리할수 있는 DHTML 예제입니다.

쇼핑몰의 쇼핑카트 등에 이용할 방향이 크네요.

소스 내용은 직접 위 링크를 참조하셔서 확인해 주셔야 할 것 같습니다.
크리에이티브 커먼즈 라이선스
Creative Commons License
올블로그추천버튼 블코추천버튼 블로그뉴스추천버튼 믹시추천버튼 한RSS추가버튼 구글리더기추천버튼


이 포스팅이 도움이 되었다면 구글에서 관련 정보를 찾아 보세요 ^^


Trackback 0 Comment 0

Trackback : http://i-ruru.com/trackback/287 관련글 쓰기