2012-06-09 50 views
-2

我正在使用以下JS來定位ID爲「someID」的元素,然後在6秒後重定向。我只希望它在存在這個元素ID的頁面上工作,但現在它會重定向它所應用到的所有頁面。我在這裏做錯了什麼?在特定時間後查找並按元素排序並重定向

if (!document.getElementById("someID")) { 
      setTimeout(function() { 
      window.location.href = "http://www.somesite.com"; 
     }, 6000); 

}; 
+3

刪除感嘆號 – Gerrat

+2

'文件.getElementById(「someID」)'如果元素沒有**不存在,它將成爲'true'。 –

+0

感謝您的快速響應!我嘗試刪除感嘆號,但似乎沒有重定向 – Bingles

回答

0
if (document.getElementById("someID") != null) { 
      setTimeout(function() { 
      window.location.href = "http://www.somesite.com"; 
     }, 6000); 
}; 
2

我的猜測是,你還沒有等到實際元素加載。

如果你有在頁面的頭你的代碼,你需要用它的onload,使不執行該腳本,直到元素可用:

window.onload=function(){ 
if (document.getElementById("someID")) { 
    setTimeout(function() { 
    window.location.href = "http://www.somesite.com"; 
    }, 6000); 
    }  
}