1

すみません、JavaScriptに関してはまったくの初心者です。display:noneare_cookies_enabled() 関数が false を返す場合、現在 onload を再表示する div が必要です。ただし、私の div は非表示ではありません。それをjquery onloadに入れると、それだけで機能します。私は何を間違っていますか?

noCookies の関数が true に設定されていることに注意してください (これは、Cookie を有効にしているため、再表示機能が機能しているかどうかを確認するためのものです)。

    function are_cookies_enabled()
    {
        var cookieEnabled = (navigator.cookieEnabled) ? true : false;

        if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
        { 
            document.cookie="testcookie";
            cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
        }
        return (cookieEnabled);
    }
    function noCookies()
    {
        if (are_cookies_enabled() == true) {
            document.getElementById('nocookie').style.display='block';
        }
    }
    window.onload = noCookies();

分割:

<div id="nocookie" style="display:none;"><div class="ec-messages messages-warning">This site may not function properly if cookies are disabled. Session variables are stored in cookies. Please enable cookies.</div></div>
4

1 に答える 1

0

に変更window.onload = noCookies()してみてくださいwindow.onload = noCookies

window.onloadは「ロード」イベント [ refnoCookies ] を処理するイベント ハンドラであるため、関数をに割り当てるwindow.onloadと、「ロード」イベントが発生したときに関数が呼び出されます。

ただし、コードでは、関数の戻り値(未定義) が に割り当てられているためwindow.onload、間違いなく機能しません。

于 2013-06-12T00:46:09.300 に答える