这已经在某些设备上运行,例如iPhone(上次我测试时!),但在我的Android手机上,我遇到了一个奇怪的问题。当我访问URL或点击链接时,它使用默认样式表显示网站。如果我刷新页面,它会决定使用移动样式表呈现网站。就好像我的代码没有捕捉到UserAgent直到我点击刷新。
以下是我使用的代码:
<link href="css/style.css" id="stylesheet" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var userAgent = navigator.userAgent;
if(userAgent.search("Mobile")>=0) document.getElementById("stylesheet").href = "css/style_mob.css";
if(userAgent.search("Nokia")>=0) document.getElementById("stylesheet").href = "css/style_mob.css";
if(userAgent.search("SymbianOS")>=0) document.getElementById("stylesheet").href = "css/style_mob.css";
</script>
脚本仅适用于少数设备,但您可以获得一般想法。
我的用户代理字符串如下:
Mozilla/5.0(Linux; U; Android 2.1-update1; en-gb; T-Mobile_G2_Touch Build/ERE27)AppleWebKit/530.17(KHTML, like Gecko)Version/4.0 Mobile Safari/530.17
编辑:
我应该补充说,我已经尝试使用媒体查询,但在iPhone或Android上完全不起作用。上面的代码对iPhone非常有效。以下是我在尝试使用媒体查询时使用的代码。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link href="../css/style.css" id="stylesheet" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" media="only screen and (max-width: 480px), only screen and (max-device-width: 480px)" href="../css/style_mob.css" />