2013-03-13 42 views
1

如果在頁面內發現div ID,我需要重定向頁面。功能重定向,如果我的網頁上的Div ID將不起作用

我有這樣的腳本:

<script> 

if (!document.getElementById("locationsHolder")) { 
window.location.href = "logged.html"; 
} 
</script> 

在同一頁上我有這樣的

<div class="locationsHolder" id="locationsHolder"></div> 

雖然我有一切權利,它加載什麼ID,我把上的getElementById logged.html頁。即getElementById(「notexist」)

+0

什麼是'java'標籤在這裏做什麼? – Maroun 2013-03-13 21:18:37

+1

元素之前的腳本?腳本可以在div呈現之前運行,從而重定向。 – Schleis 2013-03-13 21:20:55

+0

要麼你誤會了這個問題,要麼你有一個簡單的代碼錯誤。現在,如果它檢查頁面上的「locationsHolder」是否不是**。 – Maus 2013-03-13 21:23:17

回答

0

你可能連頁面已經被加載之前測試DIV ID的存在。 我建議你將腳本放在div id之後,或者只在onload事件之後調用call。

window.onload=function(){ 
    // your code 
} 
3

你應該做if (document.getElementById("locationsHolder")),因爲如果找到div,你想做點什麼。您還應該將腳本放在文檔的末尾或使用jQuery $(document).ready()以確保在運行腳本之前加載整個頁面。

+0

問題是'!'並且腳本在div id之前 – marius 2013-03-14 07:08:22

0

你應該問它是否爲null。在開發者工具中試試這個。 !

空 - >真

「!」! - >真

的document.getElementById( 「locationsHolder」)始終是真實的。

,你應該這樣做

!的document.getElementById( 「locationsHolder」)== NULL

1

這也許會做你需要的東西:

<!-- Put the following somewhere in the head block: --> 
<script type="text/javascript"> 
window.onload = function(){ 
    if(document.getElementById("locationsHolder") == null){ 
     // Do something here if the ID is NOT found on the page 
    }else{ 
     // Do something here if the ID IS found on the page 
     document.location = "logged.html"; 
    } 
}; 
</script> 
0

這是 '!'我刪除它,腳本是在div id之前。現在它正在工作。

我需要它,因爲如果另一個頁面包含div ID,我希望主頁重定向。我在索引文件中有另一個腳本,如果包含div id,它將查找page2,並且直到我從該主題製作此腳本來檢查該div是否出現在頁面上時,它才起作用。

所以,這個腳本是一個主頁,並檢查是否DIV ID Page2上並加載它的主頁上找到:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script> 
<script type="text/javascript"> 
jQuery(function($){ 
$('#result').load('Page2.html #intro'); 
}); 
</script> 
</head> 
<body> 
<div id="result"></div> 

從第2頁代碼:

<div id="result"><div id="intro">Hi, this is the Intro!</div></div> 

現在從這個腳本主題找不到div id「intro」,實際上它不會加載爲'intro'的下面的腳本搜索(以及上面的jquery停止工作),但是如果我從頁面中搜索其他div,則工作必須是衝突。

<script> 

if (document.getElementById("intro")) { 

    window.location.href = "logged.html"; 
} 
</script> 

出了什麼問題? 也許有另一種更簡單的方式來觸發重定向,如果page.2包含div id「intro」?

我試圖觸發直接從第1頁與此腳本重定向,但將無法工作:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"> </script> 
<script type="text/javascript"> 
if ('page2.html #intro').length === 0){ 
window.location.href = "logged.html"; 
} 
</script>