반응형
그렇게 자주 안쓰는 구문이라 가끔 쓰게 되면 깜빡하게 된다..ㅜㅜ

parent :

...
<iframe id="contentFrame" name="contentFrame" src="about:blank" marginwidth="0" marginheight="0" frameborder="0" width="100%" height="100%" scrolling="no"></iframe>
...

iframe :

...
<div id="content">
... contents ...
</div>
...
<script type="text/javascript">
function init(){
  var doc = document.getElementById('content');
  if(doc.offsetHeight == 0){
  } else {
 pageheight = doc.offsetHeight;
 parent.document.getElementById("contentFrame").height = pageheight+"px";
  }
}
window.onload = function(){
  init();
}
</script>
...


iframe 안의 소스에서 내용이 들어가는 전체를 <div id="content"></div> 로 감싸고,
onload 이벤트로 그 div 의 dom.offsetHeight 를 구해서 parent.iframe 의 height 를 바꿔주는
방식이다.
붉은색으로 표시된 height 가 크로스 브라우징의 핵심이다.
겨우 height 가 핵심이냐고? 모르는 소리다.
clientHeight, scrollheight,innerHeight, 등등 모두 크로스브라우징은 안된다. 하지만 그냥 height 는 된다;;
반응형
반응형

페이지 로딩시 시작할 스크립트 선언에 대해 <body onload="">의 onload를 많이 사용해 보았을 것입니다.

그리고 모든 페이지에서 공통으로 들어갈 스크립트는 페이지 마다 작성을 하지 않고, js 파일을 만들어 연결을 하여 사용을 할 것입니다.

 

여기서 그럼 모든 페이지에서 load시 공통으로 실행될 스크립트는 어떻게 작업을 할까요??

window.onload를 사용 하면 됩니다.

 

window.onload = function(){ 시작시 실행될 내용 }

이런식으로 말이죠.

 

그런데 문제는 window.onload와 <body onload="">는 동시에 사용을 할 수 없습니다.

<body onload="">가 실행이 되면 window.onload는 실행이 되지 않는 문제가 있습니다.

 

그래서 이를 해결하고자 할때 사용하는 것이

window::onload()입니다.

function window::onload(){ 시작시 실행될 내용 }

이렇게 사용을 하면 됩니다.

 

실행 순서는 <body onload="">가 먼저 실행되고, 이어서 window::onload()가 실행됩니다.

출처 카페 > arc-Hive | 없다
원문 http://cafe.naver.com/akadream/91

반응형
반응형

브라우저에 보이는 내용중에서 특정부분만 인쇄하기 위해서 
window.onbeforeprint 이벤트에서 출력 직전에 인쇄시 제외할 부분을 정의하고 
window.onafterprint 이벤트에서 출력 직후에 제외한 부분을 다시 나타나게 한다.

function printReceipt() {
    window.onbeforeprint  = function() {
      document.getElementById("btnPrint").style.display = "none";
    }

    window.onafterprint = function() {
      document.getElementById("btnPrint").style.display = "inline";
    }
   
    window.print();   
반응형
반응형

//Error 잡아내기
var isDebugging = true;
function ErrorSetting(msg, file_loc, line_no) {
var e_msg=msg;
var e_file=file_loc;
var e_line=line_no;
var error_d = "Error in file: " + file_loc + "\nline number:" + line_no + "\nMessage:" + msg;
    if(isDebugging)
        alert("Error Found !!!\n--------------\n" + error_d);

    return true;
}
window.onerror = ErrorSetting;
반응형
반응형


// Cross Browser Word Breaker with jQuery
// Usage : $('[search]').breakWords();
(function($) {
    $.fn.breakWords = function() {
        this.each(function() {
            if (this.nodeType !== 1) { return; }

            if (this.currentStyle && typeof this.currentStyle.wordBreak === 'string') {
                this.runtimeStyle.wordBreak = 'break-all';
            } else if (document.createTreeWalker) {
                var trim = function(str) {
                    str = str.replace(/^\s\s*/, '');
                    var ws = /\s/, i = str.length;
                    while (ws.test(str.charAt(--i)));
                    return str.slice(0, i + 1);
                };            //For Opera, Safari, and Firefox
                var dWalker = document.createTreeWalker(this, NodeFilter.SHOW_TEXT, null, false);
                var node, s, c = String.fromCharCode('8203');
                while (dWalker.nextNode()) {
                    node = dWalker.currentNode;
                    s = trim(node.nodeValue).split('').join(c);
                    node.nodeValue = s;
                }
            }
        });
        return this;
    };
})(jQuery);

오호..이런 좋은게 있었다니..

반나절의 삽질을

췌길... Literal 이것때문에 뭔 고생이람..ㅡㅡ;;

스타일이 먹히지 않는다걸 생각도 못하고. 다시는 이거 안써!!

Label이 짱이야.ㅋㅋ

## 참고 : jQuery.js (1.3.2) 버전 이상 가능

반응형
반응형

if($.browser.msie)
{
     document.getElementById("tr").style.display = "inline";
}
else
{
     document.getElementById("tr").style.display = "table-row";
}

익스플로러 7이하에서는 "table-row"의 속성값을 인식하지 못하는 문제가 발생하였다..ㅡㅡ;;

이것은 "inline"으로 설정하면 간단하게 해결이 된다.

하지만 또 다른 문제 발생!!!!

바로 Firefox에서 또 다른 문제가 생긴다. "inline"을 사용하게 되면 첫번째 column에 Table Row가

그냥 생겨버린다.

colspan은 전혀 먹히지 않은채~~

그래서 IE이외의 브라우저는 "table-row" 속성을 먹이면 된다.

아따 스크립트 좀 통일 하면 안되냐 이것들아.!!!

반응형
반응형

<script language="javascript">
            // 해당이름의 쿠키를 가져온다.
            function getCookie(cookie_name) {
                var isCookie = false;
                var start, end;
                var i = 0;

                // cookie 문자열 전체를 검색
                while(i <= document.cookie.length) {
                     start = i;
                     end = start + cookie_name.length;
                     // cookie_name과 동일한 문자가 있다면
                     if(document.cookie.substring(start, end) == cookie_name) {
                         isCookie = true;
                         break;
                     }
                     i++;
                }

                // cookie_name 문자열을 cookie에서 찾았다면
                if(isCookie) {
                    start = end + 1;
                    end = document.cookie.indexOf(";", start);
                    // 마지막 부분이라는 것을 의미(마지막에는 ";"가 없다)
                    if(end < start)
                        end = document.cookie.length;
                    // cookie_name에 해당하는 value값을 추출하여 리턴한다.
                    return document.cookie.substring(start, end);
                }
                // 찾지 못했다면
                return "";
            }


function openMsgBox()
{
        var eventCookie=getCookie("event_condo");
        // 쿠키가 없을 경우에만 (다시 보지 않기를 선택하지 않았을 경우.)
        if (eventCookie != "no")
            window.open('event_popup.html','_blank','width=350,height=300,top=50,left=150');
}
openMsgBox();   // 팝업창을 띄운다.
</SCRIPT>   

 

 [ event_pop.html ]
    팝업창에 추가한다.

 

<script language="JavaScript">
function setCookie( name, value, expiredays ){
   var todayDate = new Date();
   todayDate.setDate( todayDate.getDate() + expiredays );
   document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";";
}
function closeWin(){
        if ( document.event_Fcondo.event.checked )
                setCookie("event_condo", "no" , 1); // 하루 쿠키 적용 (  마지막 인자값이 날자임 )        
}
</script>

</HEAD>


<BODY BGCOLOR="#FFFFFF" onunload="closeWin()">

아래의 체크박스에 체크한 후 창을 닫으면 하루동안 창이 열리지 않습니다.

<form name="event_Fcondo">
<input type="checkbox" name="event"><font size=2>오늘하루 이 창을 열지않음</font>     
<input type=button value="닫기" onclick="self.close()">
</form>
반응형
반응형
반응형

+ Recent posts