2013-02-15 2 views
0

내가 잘못하고있는 것에 대한 단서가 없습니다. 그것은 단지 두 번째 분할 팝업을 보여줍니다. 타임 아웃 옵션이 더 좋을까요? 어느 부분이 문제입니까? 나는 Javascript에 조금 익숙하지 않기 때문에 정확히 무엇을 찾아야할지 모릅니다. 당신의 목표는 (그것이 결코 보여주지 않도록) 페이지 표시의 처음부터 숨길 수 id="google"와 요소를 가지고있는 경우쿠키가있는 경우 자바 스크립트 팝업이 두 번째로 표시됩니다.

<script language="javascript" type="text/javascript"> 
/** Create a html cookie and set expiry as a day. **/ 
function createCookie(name,value,days) { 
    var date = new Date(); 
    date.setTime(date.getTime()+(days*24*60*60*1000)); 
    var expires = date.toGMTString(); 
    document.cookie = name+"="+value+"; expires="+expires+"; path=/"; 
} 
/** Check if already a cookie has been created. **/ 
function readCookie(name) { 
    var flag = 0; 
    var dcmntCookie = document.cookie.split(';'); 
    for(var i=0;i < dcmntCookie.length;i++) { 
     var ck = dcmntCookie[i]; 
     while (ck.charAt(0)==' ') { 
      ck = ck.substring(1,ck.length); 
     } 
     if(ck) { 
      cparts = ck.split('='); 
      if (cparts[0] == name) flag=1; 
     }    
    }  
    if(flag) { 
     return true; 
    } else { 
     return false; 
    } 
} 
/** Check if cookie exists else create a new one. **/ 
function checkCookie(name) { 
    if (readCookie(name)) { 
     document.getElementById('google').style.display = "none"; 
     document.getElementById('google').style.visibility = "hidden"; 
    } 
    else createCookie(name,"cookie 4 the day",1); 
} 
</script> 
<script type="text/javascript"> 

function closeThisDiv() 

{ 

var openDiv = document.getElementById('google'); 

openDiv.style.display = 'none'; 

} 
</script> 
<body onLoad="checkCookie('MyCookie')" 

답변

0

, 당신은 CSS 규칙을 추가해야한다는이 같은 헤드 부분에 부하 :

<div id="google" style="display:none"></div> 

:

#google {display: none;} 

또는, HTML 자체에 스타일 요소를 추가한다 코드가 현재 작성되었으므로 코드가 수행중인 것처럼 보입니다. 전체 문서가로드 될 때까지 대기하고 (이미지 포함) id="google"으로 요소를 숨 깁니다. 즉, 페이지가로드되는 동안 항목이 잠시 동안 표시되고 코드가이를 숨길 것입니다.

Google 객체의 CSS 또는 HTML을 수정할 수없고 가능한 한 빨리 자바 스크립트로 숨기려고하면 Google 객체가 페이지의 HTML에 표시됩니다 (프로그래밍 방식으로 추가되지 않음).) 그러면 다음을 수행 할 수 있습니다.

<body> 
other HTML here 

<script> 
// script that executes right before the /body tag 
checkCookie("MyCookie") 
</script> 

</body> 

이렇게하면 모든 이미지를 숨기기 전에로드 할 때까지 기다릴 필요가 없습니다.

0

다음과 같이 수정했습니다.

display : css 속성을 만듭니다. #google

에 대한
#google{display:none;} 

그런 다음 그들이 쿠키를 가지고 있지 않으며, 쿠키를 만들 경우에만 표시 코드의 마지막 부분 주위에 전환 할 수 있습니다.

/** Check if cookie exists else create a new one. **/ 
function checkCookie(name) { 
    if (readCookie(name)) { 

    } 
    else document.getElementById('google').style.display = "inline"; 
     document.getElementById('google').style.visibility = "visibility"; 
     createCookie(name,"cookie 4 the day",1); 

누구나이 문제가 발생합니다. 나를 위해 잘 해줬습니다.

관련 문제