2016-09-29 28 views
0

私たちのホームページは、ブラウザの言語を検出し、自動的にその言語ページにリダイレクトする空のページです。そこにある戻るボタン(Firefoxなど)は実際に私たちのホームページに戻ってきます。残念ながら彼は言語ページに再び送ります。訪問者が私たちのページに捉えられているようですが、戻るボタンはもう働きません。ページが表示されていることを検出するにはどうすればよいですか?

私のホームページでは、それが戻って実行されることをどのように検出できますか?その後、私はJavascriptに訪問者をループに再び誘導するのではなく、もう一度戻るボタンを押すようにします。

ホームページのリダイレクトはすべての言語で行われます。ホームページにはそれ以上のコンテンツはありません。リダイレクトはwindow.openによって行われます。

<script language="javascript" type="text/javascript"> 
    language = (navigator.userLanguage || navigator.language); 
    language = language.substring(0,2); 
    switch (language) { 
    case 'fr': 
     window.open("fr/index.html",'_self'); 
     break; 
    case 'de': 
     window.open("de/index.html",'_self'); 
     break; 
    default: 
     window.open("en/index.html",'_self'); 
     break; 
    } 
</script> 
+0

サンプルコードを試しましたか? –

+0

あなたは 'cookies'または' localStorage'に言語をキャッシュできます –

+0

まあ、サーバー上の言語を検出し、異なる内容で応答するか、HTTP 3xxリダイレクトを発行するのが理想的です。ブラウザはこれを正しく処理します。インタースティシャルのJavascriptページからのリダイレクトは本当の問題です。 – deceze

答えて

0

私がホームページは(通常の言語のいずれかのページの戻るボタンから)2回目と呼ばれていたことを知ってwindow.sessionStorageの使用:

<script language="javascript" type="text/javascript"> 
    if (window.sessionStorage.getItem("goBack")=="True"){ 
    window.sessionStorage.setItem("goBack","False"); window.history.back(); 
    } 
    else { 
    window.sessionStorage.setItem("goBack","True"); 
    language = (navigator.userLanguage || navigator.language); 
    language = language.substring(0,2); 
    switch (language) { 
     case 'fr': 
     window.open("fr/index.html",'_self'); 
     break; 
     case 'de': 
     window.open("de/index.html",'_self'); 
     break; 
     default: 
     window.open("en/index.html",'_self'); 
     break; 
    } 
    } 
</script> 

は、あなたのコメントと回答ありがとうございました。あなたは私を正しい道へ導いた!

-2

jsの言語に依存しないコードです。

<script> 
function goBack() { 
    window.history.back(); 
} 
</script> 

<button onclick="goBack()">Go Back</button>

これを試してみてください。

関連する問題