2015-09-26 29 views
2

我有一點JS代碼(由PHP回聲),將放在我的網頁的頂部。代碼應該評估窗口大小,並基於此,轉到移動版本或轉到PC版本。js window.redirect不斷更新

但是,當我loead我的網頁(PC版),頁面不斷刷新。我怎樣才能令人耳目一新?

下面的代碼:

$page = $_SERVER["PHP_SELF"]; 
     echo "<script>"; 
     echo "function screenSizeRedirect() 
      { 
       var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
       var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
       if (width <= 960) 
       { 
        window.location = 'http://m.bss21universe.ga$page'; 
       } 
       if (width > 960) 
       { 
        window.location = 'http://www.bss21universe.ga$page'; 
       } 
      }"; 
    echo "screenSizeRedirect();"; 
    echo "</script>"; 
+0

你能提供圍繞片段的上下文嗎?在頁面中特別是在什麼點加載? – Romuloux

回答

1

我認爲您應該將pc視圖設置爲默認值,並且僅當從移動設備打開視圖時重定向。

這可以通過很多方式完成,但在我看來,this method是檢測您提出請求的設備的最佳方式。

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
window.location = 'http://m.bss21universe.ga$page'; 
} 
+1

我從來沒有考慮過這種方法!感謝您瞭解我這個! –

+1

@EVDEKSP我很高興能幫助你:) – IlGala

2

您重定向的頁面,即使你是正確的。

因此,如果您加載主頁,它會檢查以查看您的屏幕大小。如果屏幕尺寸爲主屏幕尺寸,則會將您重定向至主屏幕,然後重新開始。

您需要寫一張支票以確保您沒有重定向到您已經在的頁面。

未經測試示例如下:

$page = $_SERVER["PHP_SELF"]; 
    echo "<script>"; 
    echo "function screenSizeRedirect() 
     { 
      var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
      var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
      if (width <= 960 && window.location.href != 'http://m.bss21universe.ga$page') 
      { 
       window.location = 'http://m.bss21universe.ga$page'; 
      } 
      if (width > 960 && window.location.href != 'http://www.bss21universe.ga$page') 
      { 
       window.location = 'http://www.bss21universe.ga$page'; 
      } 
     }"; 
echo "screenSizeRedirect();"; 
echo "</script>"; 

另外,還有一些更復雜的方式來檢查移動超過屏幕寬度,許多純JS或jQuery插件都可以使移動偵測容易。 EG mobile-detect.js

+0

這工作!謝謝!我會看看插件! –