2012-10-11 26 views
3

有誰知道如何在移動瀏覽器中選擇桌面視圖選項會影響CSS媒體查詢和Javascript?Desktop View/View Desktop Site實際上做了什麼?

我正在製作一個網站,只是爲了移動用戶。當我使用股票Android瀏覽器時選擇「桌面視圖」時,它會破壞網站。我想有效地忽略桌面視圖設置。

謝謝

+0

我相信這個選項只會改變用戶代理。 – Kraz

+0

謝謝克拉茲,我確信你是對的 - 請你可以提供這個答案,以便我可以將其標記爲正確。 – tarling

+0

當然,也感謝:) – Kraz

回答

2

我相信這個選項只會改變用戶代理。

+0

謝謝 - 我所有的網站被打破的方式分別下降到navigator.userAgent的價值是不同的 – tarling

0

它不一定會更改用戶代理,但會爲該用戶的網站設置會話變量,因此如果他們提出請求,它將跳過用戶代理檢查並直接返回桌面網站。

Example Code

<?php 
//See if the browser is a mobile browser 
// If it's mobile browser see if the user prefers desktop version 
// IF the user does not the foward to mobile website. 

$browser = $_SERVER['HTTP_USER_AGENT']; 

if(preg_match('/iPhone/i',$browser)) { $iphone = "true"; } 
if(preg_match('/Android/i',$browser)) { $android = "true"; } 


if($iphone == true || $android == true) { 

    session_start(); 
    if($_SESSION['version'] != "desktop") { 

     header("location: http://tuts.pinehead.tv/jqmobile/mobile.php"); 

    } 


} 
+0

當您選擇從Android瀏覽器菜單「查看網頁版」我的意思。我認爲用戶Kraz在這種情況下是正確的 - 這一切都是由navigator.userAgent的價值的差異解釋。我不認爲它必然涉及到任何服務器端,或會話變量。但是,你的解決方案將是在某些情況下 – tarling

+0

抱歉必須錯過了你的第二段/句話再恰當:機器人。漫長的一天.. –

1

的「桌面視圖」股票Android瀏覽器只是改變發送到服務器的用戶代理(UA)字符串。如果沒有選項中選擇一個典型的UA字符串將類似於以下內容:

的Mozilla/5.0(Linux的; U; Android的{OS版本}; EN-GB; {設備型號信息})爲AppleWebKit /534.30(KHTML,例如Gecko)版本/ 4.0移動版Safari/534.30

隨着 '桌面視圖' 選項啓用此變爲類似於:

的Mozilla/5.0(X11,X8的Linux 6_64)爲AppleWebKit/534.24(KHTML,像壁虎) 的Chrome/Safari瀏覽器11.0.696.34/534.24

正如你所看到的第一個例子中明確包括Word Mobile中,它也告訴我們,這是一個Android操作系統。第二個示例通過忽略Mobile這個詞來批判性地模擬「全瀏覽器」的用戶代理字符串。

更重要的是要具體回答兩個部分的原始問題;

此選項如何影響CSS媒體查詢?

它沒有。 CSS媒體查詢本身不受發送到服務器的UA字符串的影響。通常,當我們談論媒體查詢時,我們正在參考設備的屏幕大小/分辨率/方向,所有這些都不受「桌面視圖」選項的影響。如果服務器根據提供的UA字符串提供不同的響應,則只會更改該站點的CSS行爲。

此選項如何影響JavaScript?

如果您(或您使用的第三方庫)使用Navigator對象修改基於瀏覽器版本的行爲,則會影響javascript。

相關問題