0
我正在寻找一些最佳方式来做到这一点的建议。jquery隐藏字段值在代码后面
基本上我有一些JavaScript检测用户是否在移动设备上,如果他们是一个CSS文件加载,移动类被添加到页面的身体,并且隐藏字段被赋予移动值。然后我检查这个隐藏字段的值,以便我可以运行特定于移动设备的方法。
目前我有一切按照需要工作,但我不得不在第一页加载做一个JavaScript回发,所以隐藏字段的值可以从后面的代码访问。我只是想知道是否有更好的方法来做到这一点?
这是我的一些代码。
if (navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)) {
$("body").addClass("mobile");
$('head').append('<link rel="stylesheet" href="Styles/mobile.css" type="text/css" />');
$('head').append('<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0;">');
if ($("#hfdevice").val() != "mobile")
{
$("#hfdevice").val("mobile");
__doPostBack('hfdevice','');
}
}
。
HiddenField hfdevice = (HiddenField)Master.FindControl("hfdevice");
if (hfdevice.Value == "mobile")
{
Do Stuff
}
更好的方法是检查服务器端的用户代理并根据需要更改标记。检查:http://stackoverflow.com/questions/1005153/auto-detect-mobile-browser-via-user-agent – Chandu
+1 Chandu的评论,并设置一个cookie,只有在cookie尚未设置时才运行检测脚本。 –
或使用响应式设计并完全跳过移动版本。我不明白你为什么需要回发,看起来你已经找到了所有的东西。或者你可以检测并设置一个移动主题页面。后面的代码和javascript的混合是没有必要的。 – MikeSmithDev