我正在使用此代碼將人們重定向到某些網址,具體取決於他們選擇的瀏覽器語言。爲什麼FF中的window.location方式比Chrome更快?
如您所見,如果他們有德語瀏覽器,則不會發生變化。 如果他們有英文,法文或西班牙文瀏覽器,他們將被重定向到正確的URL。
這隻會在瀏覽器會話中發生一次,因此如果需要的話,他們可以從其他語言訪問德語家庭。
<?php
session_start();
if(!isset($_SESSION['visitedOnce'])){
if(is_home() && ICL_LANGUAGE_CODE == 'de'){
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "de":
//echo "PAGE DE";
break;
case "en":
//echo "PAGE EN";
echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
break;
case "es":
//echo "PAGE ES";
echo '<script type="text/javascript">window.location = "http://www.google.es";</script>';
break;
case "fr":
//echo "PAGE FR";
echo '<script type="text/javascript">window.location = "http://www.google.fr";</script>';
break;
default:
//echo "PAGE EN - Setting Default";
echo '<script type="text/javascript">window.location = "http://www.google.com";</script>';
break;
}
}
$_SESSION['visitedOnce'] = true;
}
?>
在Firefox工作正常,HTML不會加載,並且重定向將無縫地發生。
但是,在重定向發生之前,Google Chrome會顯示難看的HTML塊。
有沒有辦法阻止它使用這種JavaScript重定向?
謝謝!
爲什麼你要做JavaScript重定向而不是返回301或302重定向? –
如何使用正確的服務器端重定向? – Cerbrus