有誰知道如何在移動瀏覽器中選擇桌面視圖選項會影響CSS媒體查詢和Javascript?Desktop View/View Desktop Site實際上做了什麼?
我正在製作一個網站,只是爲了移動用戶。當我使用股票Android瀏覽器時選擇「桌面視圖」時,它會破壞網站。我想有效地忽略桌面視圖設置。
謝謝
有誰知道如何在移動瀏覽器中選擇桌面視圖選項會影響CSS媒體查詢和Javascript?Desktop View/View Desktop Site實際上做了什麼?
我正在製作一個網站,只是爲了移動用戶。當我使用股票Android瀏覽器時選擇「桌面視圖」時,它會破壞網站。我想有效地忽略桌面視圖設置。
謝謝
它不一定會更改用戶代理,但會爲該用戶的網站設置會話變量,因此如果他們提出請求,它將跳過用戶代理檢查並直接返回桌面網站。
<?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");
}
}
當您選擇從Android瀏覽器菜單「查看網頁版」我的意思。我認爲用戶Kraz在這種情況下是正確的 - 這一切都是由navigator.userAgent的價值的差異解釋。我不認爲它必然涉及到任何服務器端,或會話變量。但是,你的解決方案將是在某些情況下 – tarling
抱歉必須錯過了你的第二段/句話再恰當:機器人。漫長的一天.. –
的「桌面視圖」股票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。
我相信這個選項只會改變用戶代理。 – Kraz
謝謝克拉茲,我確信你是對的 - 請你可以提供這個答案,以便我可以將其標記爲正確。 – tarling
當然,也感謝:) – Kraz