0

私のhtml5レイアウトのためにInternet ExplorerまたはFirefoxの古いブラウザを使用している場合、jQueryでwindow.location.replace()を使用してwordpresの新しいページにリダイレクトしています。

              var browser = jQuery.browser;
              var version = browser.version.slice(0.3);

              if ( browser.msie && version != "10.0" && version != '9.0' ) {
                    window.location.replace("http://crosscom.dk/update-browser");
              }

               if ( browser.mozilla && version != "17.0" && version != '16.0' && version != '15.0' ) {
                    window.location.replace("http://crosscom.dk/update-browser/");
              }

リダイレクトは機能しますが、wordpres のヘッダーに読み込まれるため、毎回ループし続けるため、IE 8 の例に座っています。

だから私の質問は次のとおりです...

ブラウザが一度リダイレクトされた後にスクリプトがループしないように、スクリプトを強制終了するか、コードの周りにさまざまなパラメーターを設定するにはどうすればよいですか?

4

2 に答える 2

5

リダイレクト先を含め、どのページにいてもリダイレクトが発生するため、ループが発生します。ループを回避するには、既にリダイレクト先にいるかどうかをテストします。

これを実現する方法はいくつかありますが、最も効率的なのはおそらくサーバー側のチェックとリダイレクトです。ただし、知識レベルまたは展開の要件が JavaScript の代替手段の方が優れていることを意味すると仮定すると、次のコードを使用できます。

var redirectLocation = "http://example.com/example.html"; // Redirect destination

// Page location and redirectLocation should not be the same
if (window.location.href !== redirectLocation) {
  // Redirect logic
}

これを独自のコード例に直接適用すると、次のようになります。

var browser = jQuery.browser;
var version = browser.version.slice(0.3);
var redirectLocation = "http://crosscom.dk/update-browser/"; // Redirect destination

// Page location and redirectLocation should not be the same 
if (window.location.href !== redirectLocation) { 
  // Redirect logic

  if ( browser.msie && version != "10.0" && version != '9.0' ) {
    window.location.replace(redirectLocation);
  }

  if ( browser.mozilla && version != "17.0" && version != '16.0' && version != '15.0' ) {
    window.location.replace(redirectLocation);
  }

}
于 2012-12-03T13:10:15.930 に答える
1

リダイレクトが必要なページにのみスクリプトを含める

于 2012-12-03T13:09:50.127 に答える