1

ページ内に div id が見つかった場合は、ページをリダイレクトする必要があります。

私はこのスクリプトを持っています:

 <script>

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

同じページにこれがあります

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

私はすべて正しいですが、getElementByIdに付けたIDが何であれ、logged.htmlページをロードします。すなわち getElementById("notexist")

4

5 に答える 5

3

if (document.getElementById("locationsHolder"))divが見つかった場合に何かをしたいので、そうする必要があります。また、スクリプトをドキュメントの最後に配置$(document).ready()するか、jQuery を使用して、スクリプトを実行する前にページ全体が読み込まれていることを確認する必要があります。

于 2013-03-13T21:23:09.903 に答える
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>
于 2013-03-13T21:46:06.910 に答える
0

== null かどうかを確認する必要があります。開発者ツールでこれを試してください。

!ヌル --> 真

!"" --> 真

!document.getElementById("locationsHolder") は常に true です。

あなたは次のようなことをするべきです

!document.getElementById("locationsHolder") == null

于 2013-03-13T21:24:14.437 に答える
0

ページがロードされる前に、おそらく div id の存在をテストしたでしょう。div id の後にスクリプトを配置するか、onload イベントの後にのみ呼び出しを呼び出すことをお勧めします。

window.onload=function(){
    // your code
}
于 2013-03-13T21:34:15.873 に答える
0

それは「!」でした。私はそれを削除し、スクリプトはdiv idの前にありました。今、それは働いています。

別のページにdiv IDが含まれている場合にホームページをリダイレクトしたいので、これが必要です。div id が含まれている場合に page2 を検索する index ファイル内に別のスクリプトがあり、このトピックからこのスクリプトを作成して、その div がページに存在するかどうかを確認するまで機能しました。

したがって、このスクリプトは 1 つのホームページであり、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> 

page2 のコード:

<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" が含まれている場合、リダイレクトをトリガーする別の簡単な方法があるかもしれません。

このスクリプトを使用して page1 から直接リダイレクトをトリガーしようとしましたが、うまくいきません:

<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>
于 2013-03-14T07:22:43.127 に答える