2013-07-02 119 views
0

我正在使用以下腳本將頁面的訪問者重定向到第一次訪問的另一個頁面,但它首先加載index.html頁面,然後觸發重定向。任何人都可以指導我如何在頁面加載之前觸發此腳本?如何在頁面加載之前製作JS頁面重定向觸發器

<script type="text/javascript"> 
    function redirect(){ 
    var thecookie = readCookie('doRedirect'); 
    if(!thecookie){window.location = '/coming-soon.html'; 
    }} 
    function createCookie(name,value,days){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=/"; 
    } 
    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; 
    } 
    window.onload = function(){redirect();createCookie('doRedirect','true','1');} 
</script> 

(JS的代碼段這裏使用從Stack Overflow: JS to redirect to a splash page on first visit拍攝)

感謝。

+0

不要在'window.onload'回調中執行此操作。只要將這段代碼放在head標籤中,那麼瀏覽器就會在解析它的時候運行它。此外,您最好在重定向之前創建cookie,以確保其執行。 – Tommi

+0

澄清,你的意思是改變最後一行? 'function(){redirect(); createCookie('doRedirect','true','1');}' – jasonbradberry

+0

對不起,請不要回答您最後的問題。這是什麼」? – Tommi

回答

1

您不需要等待加載窗口:

<script type="text/javascript"> 
    var thecookie = readCookie('doRedirect'); 
    if(!thecookie) { 
     createCookie('doRedirect','true','1'); 
     window.location = '/coming-soon.html'; 
    }; 
    function createCookie(name,value,days){ 
     // do work 
    } 
    function readCookie(name){ 
     // do work 
    } 
</script> 

而且切赫B.說正確的事:服務器端重定向你的情況更好。

+0

謝謝,這工作完美。由於這只是一個短期解決方案,我現在堅持這一點,因爲我不熟悉服務器端的工作,但是將來會記住它。非常感激。 – jasonbradberry

相關問題