0

Cookie が存在するかどうか、および値があるかどうかを確認するインデックス サイトがありますEN。その場合は、英語にリダイレクトする必要がありindex.shtmlます。それ以外の場合、または (英語) Cookie がない場合は、ドイツ語の次のページにリダイレクトする必要があります。

if (document.cookie)  {
    var cookieValue = document.cookie;
    if (cookieValue.indexOf("MYCOOKIE=EN") > -1)  {
        window.location.href="en/index.shtml";
    }
}
window.location.href="kategorien/hauptkategorie.shtml";

ここで、非常に奇妙なことが起こります。英語の Cookie が存在します ( cookieValueJavaScript アラートで確認したところ、表示されますEN) が、内部の hrefifは実行されませんが、2 番目の href は実行されます。これはなぜですか?

2 を追加するとelse、期待どおりに動作します。

if (document.cookie)  {
     var cookieValue = document.cookie;
     if (cookieValue.indexOf("MYCOOKIE=EN") > -1)  {
         window.location.href="en/index.shtml";
     }
     else  {
         window.location.href="kategorien/hauptkategorie.shtml";
     }
}
else  {
     window.location.href="kategorien/hauptkategorie.shtml";
}

shauptkategorie.shtmlを離れるとリダイレクトされるのはなぜですか?else

4

2 に答える 2

4

の後に通常の Javascript ステートメントがありifます。

に入れない限り、そのステートメントを実行しないように指示するものは何もありませんelse

新しいページに移動しても、新しいページが実際に読み込まれるまで、現在のページの実行は終了しません。

于 2011-10-30T21:14:41.527 に答える
3

おそらく両方のwindow.location.hrefステートメントが実行され、予期しない結果が得られます。次のようなものを試してください:

<script type="text/javascript"> 
if (document.cookie && document.cookie.indexOf("MYCOOKIE=EN") > -1)  {
    window.location.href="en/index.shtml";  
}
else {
    window.location.href="kategorien/hauptkategorie.shtml";
}
</script>
于 2011-10-30T21:22:50.027 に答える