2016-11-04 33 views
0

私の目的は、ユーザをホームページからブラウザ言語に基づいて関連する言語ページにリダイレクトするスクリプトを作成することです。JavaScript window.location.replace(url)複数回リロード

<script> 
    jQuery(document).ready(function() { 
     var language = window.navigator.userLanguage || window.navigator.language; 
     if (language === "en-US") { 
      window.location.replace("/test") 
     } 
    }); 
</script> 

問題は、とき/testページが読み込まれると、それが最終的に停止する前に数回をリロードすることです。これは間違って起こっていると、なぜ場所が複数回交換されている場所

http://ts564737-container.zoeysite.com/

誰もアドバイスしてもらえ(ブラウザの言語が「EN-US」の場合にのみ動作します)この動作を確認するためには、以下を参照してください?事前にお詫び申し上げます。私はちょうどコーディングを学び始めました。あなたの時間をありがとう。

+1

<select class="foo" id="bar" onchange="dropdownChange()"> //options here </select>

とあなたのjavscript私は思いますあなたがリダイレクトしているページにも同じスクリプトが存在すると思いますか?何かが間違ってリダイレクトが停止する前に無限ループを引き起こすでしょうか?ユーザーが既にターゲットサイトにいる場合、場所が変更されないように、リダイレクトする前に場所を特定することができます。 – garglblarg

答えて

1

コードがページがロードされるたびにjQuery(document).ready(function() {にラップされるため、window.location.replaceが呼び出され、ページの更新が開始されます。

私はそうかもしれない代わりに、これに似た何かをしてみてください、あなたはあなたのサイトの言語ドロップダウンを持っていたの通知をした:

function dropdownChange() { var dropdown = document.getElementById("bar"); var language = dropdown.options[dropdown.selectedIndex].value; if (language === "en-US") { window.location.replace("/test"); } }

+1

私didnドロップダウンの使い方を考えてみましたが、今言いましたが、これは機能がすでにプラットフォームに組み込まれているため完全に完璧です。上記のコードを見て、ドロップダウンを選択しますオプションを使用してください? –

+1

@ matt136ドロップダウンの値がifステートメントでチェックしている値に設定されていることを確認する必要がありますが、コードは異なる値が選択されたときにページをリフレッシュさせるだけです。 –

0

私はあなたのリンクをChromeで試しましたが、複数の負荷が見えませんでした。 どのブラウザを使用していますか?

+1

それは答えではありません、コメント欄を使ってください – Nvan

+1

私は残念ながら私は必要な点を持っていません:( – ashto5

+0

私は愚かであった、私は現時点では "en-US"のためだけに働くことを申し訳ありません –