'HTML/Javascript'에 해당되는 글 4건

  1. 2010.01.28 iframe 내부 페이지 변경 이벤트 처리
  2. 2010.01.27 iframe 안에 있는 객체 접근
  3. 2010.01.25 Javascript 쿠키 처리
  4. 2007.11.02 window.document.domain (2)

Javascript
DOM
2010. 01. 28.
안혁
http://hyok.kr



HTML 페이지에 <iframe>이 있을 때, 외부에서 프레임 내부의 페이지 변경(submit같은...) 이벤트를 잡고 싶은 경우 다음과 같이 진행하세요.

[code]
function buttonClicked() {
    //readystatechange 이벤트에 pageChanged() 함수 연결
    document.getElementById("myiframe").onreadystatechange = pageChanged;
}

function pageChanged() {
    //<iframe>의 document.readyState가 "complete"일 때......
    if (document.getElementById("myiframe").document.readyState == "complete") {
        alert("Hello World!");
    }
}
[/code]

buttonClicked()에서 [myiframe]이라는 iframe의 상태가 변경되는 경우 pageChanged()가 호출되도록 설정합니다. 그러면 pageChanged()는 [myiframe]의 상태를 확인해서 "complete"일 경우, 변경이 완료된 것으로 보고 원하는 작업을 하는 것입니다.

'HTML > Javascript' 카테고리의 다른 글

iframe 내부 페이지 변경 이벤트 처리  (0) 2010.01.28
iframe 안에 있는 객체 접근  (0) 2010.01.27
Javascript 쿠키 처리  (0) 2010.01.25
window.document.domain  (2) 2007.11.02
Posted by 안혁 windfruit

Javascript DOM
2010. 01. 27.
안혁
http://hyok.kr



HTML 페이지에서 자바 스크립트를 통하여 <iframe>을 접근할 때 document.frames를 사용하거나 id. 했으나 표준 접근 방식은 다음과 같습니다.

[code]
document.getElementById("myiframe");
[/code]

<iframe> 특성 상 내부의 객체에 접근하고 싶은 경우가 있는데, 다음과 같이 사용하면 됩니다.

[code]
var frmDoc = document.getElementById("myiframe").contentWindow.document;
frmDoc.getElementById("innerObjId");
[/code]

contentWindow.document 대신 contentDocument를 사용해도 되야하는데, 가끔 contentDocument가 undefined를 반환하는 어이없는 경우가 있어 위와 같이 사용해야 할 것 같습니다.

'HTML > Javascript' 카테고리의 다른 글

iframe 내부 페이지 변경 이벤트 처리  (0) 2010.01.28
iframe 안에 있는 객체 접근  (0) 2010.01.27
Javascript 쿠키 처리  (0) 2010.01.25
window.document.domain  (2) 2007.11.02
Posted by 안혁 windfruit

Javascript
2010. 01. 25.
안혁
http://hyok.kr



괜찮은 쿠키 처리 자바스크립트가 있어 도메인 처리 추가 후 담아 둡니다.
원본의 출처는 다음과 같습니다.

http://www.quirksmode.org/js/cookies.html



[code]
function createCookie(name,value,days,domain) {
   if (days) {
      var date = new Date();
      date.setTime(date.getTime()+(days*24*60*60*1000));
      var expires = "; expires="+date.toGMTString();
   }
   else var expires = "";
   document.cookie = name+"="+value+expires+"; path=/ ;domain="+domain;
}

function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for(var i=0;i < ca.length;i++) {
      var c = ca[i];
      while (c.charAt(0)==' ') c = c.substring(1,c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
   }
   return null;
}

function eraseCookie(name) {
   createCookie(name,"",-1);
}
[/code]

'HTML > Javascript' 카테고리의 다른 글

iframe 내부 페이지 변경 이벤트 처리  (0) 2010.01.28
iframe 안에 있는 객체 접근  (0) 2010.01.27
Javascript 쿠키 처리  (0) 2010.01.25
window.document.domain  (2) 2007.11.02
Posted by 안혁 windfruit

Java Script
2007. 11. 2.
안혁
http://hyok.kr


웹 페이지에서 팝업창을 띄울 때에, 일반적으로는 같은 서버의 웹 문서를 띄우겠지만, 규모가 조금 커지는 경우, 역할에 따라 웹 문서들이 다른 서버에 올라가는 경우가 있습니다.
예를 들어 제 홈페이지가 메인은 http://abc.hyok.kr에 웹문서들이 들어있지만, 특정기능은 http://xyz.hyok.kr에 두고, 이를 팝업창으로 보여주는 경우가 있을 수 있겠습니다.  다음과 같이 말이지요.

사용자 삽입 이미지


단순히 창을 띄운 경우는 문제가 되지 않는데, 팝업 창-popup.html에서 어떤 결과를 부모 창-owner.html에 돌려주고 싶은 경우가 있을 수 있지요. 팝업 창이라는 것이 그런 기능을 해야할 때가 많이 있습니다. 회원 가입할 때에 중복 확인 된 아이디가 자동으로 부모창의 ID 적는 칸에 적혀지게 하고 싶다던지 할 때가 있지요. 위의 경우 처럼 서버가 다른 경우, 이것이 기본적으로는 되지 않도록 되어있습니다. 보안에 관련된 사항이지요. 악의적인 자바스크립트가 마치 다른 서버에 있는 내용을 우리가 믿을만한 사이트에서 보여주는 것처럼 나와버리면 위험하지 않겠어요? 그런 이유로 다른 서버에서 불려진 HTML과의 데이터 주고 받기는 안 되도록 되어있습니다.
하지만 아까 말했던 것 처럼 데이터를 돌려주고 싶을 때, 또는 전해주고 싶을 때가 있기 마련이지요. 가능해야 하겠는데, 어떻게 하는지...
다음과 같이 하시기 바랍니다.

window.document.domain="hyok.kr";
vRetval = window.showModalDialog(url,arrParams,......

위 처럼 팝업 창을 띄우기 전에 도메인을 설정하여 주시면 하고 싶었던게 되지요. abc.hyok.kr 이든 xyz.hyok.kr이든지 간에 hyok.kr이 붙어있으면 같은 도메인, 즉 다른 곳이 아니라 같은 곳이니 신뢰해도 좋다는 표시입니다. 신뢰해도 좋으니 보안 위배가 아니죠. 이를 주의하시면 되겠습니다.

'HTML > Javascript' 카테고리의 다른 글

iframe 내부 페이지 변경 이벤트 처리  (0) 2010.01.28
iframe 안에 있는 객체 접근  (0) 2010.01.27
Javascript 쿠키 처리  (0) 2010.01.25
window.document.domain  (2) 2007.11.02
Posted by 안혁 windfruit
이전버튼 1 이전버튼