0

何が間違っているのかわかりません。それはほんの一瞬ポップアップを表示するだけで動作します。タイムアウトオプションの方が良いでしょうか?問題はどの部分ですか?私はJavascriptに少し慣れていないので、正確に何を探すべきか本当にわかりません。

<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')"
4

2 に答える 2

0

要素をid="google"ページ表示の最初から非表示にする (表示されないようにする) ことが目的の場合は、次のように head セクションにロードする CSS ルールを追加する必要があります。

#google {display: none;}

または、スタイル要素を HTML 自体に追加する必要があります。

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

あなたのコードは現在書かれているので、本来のことをしているように聞こえます。ドキュメント全体 (画像を含む) が読み込まれるのを待ってから、要素を で非表示にしid="google"ます。つまり、ページの読み込み中にアイテムが短時間表示され、コードによって非表示になります。

Google オブジェクトの CSS または HTML を変更できず、JavaScript を使用してできるだけ早く非表示にしようとしており、Google オブジェクトがページの HTML に存在する (プログラムで追加されていない) 場合は、これを行うことができます:

<body>
other HTML here

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

</body>

これにより、少なくともすべての画像が読み込まれるのを待たずに非表示になります。

于 2013-02-15T21:45:51.640 に答える
0

私は次のように修正しました:

display:none; の css プロパティを作成します。#google 用

#google{display:none;}

次に、コードの最後の部分を切り替えて、Cookie がない場合にのみ表示し、Cookie を作成します。

/** 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);

誰かがこの問題に遭遇した場合。私にとってはうまくいきました。

于 2013-02-15T22:17:21.010 に答える