jquery隐藏在代码后面的字段值

时间:2012-11-13 01:04:51

标签: c# javascript jquery asp.net code-behind

我正在寻找一些最佳方法的建议。

基本上我有一些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
     }

1 个答案:

答案 0 :(得分:1)

如果您不想使用响应式设计,则可以检测用户代理,就像他们在评论中提到的那样。代码背后是:

   string theAgent = Request.UserAgent;
... run your check to see if mobile... change functionality, set cookie, etc.

您也可以在global.ascx中执行此操作,并根据需要加载其他MasterPage(移动母版页)。