【问题标题】:Detecting if JavaScript is enabled on a Mobile browser in ASP.Net检测是否在 ASP.Net 中的移动浏览器上启用了 JavaScript
【发布时间】:2011-05-02 08:03:42
【问题描述】:

我想在向用户显示页面之前检查移动浏览器是否启用了 javascript。我从研究中发现的代码是:

System.Web.HttpBrowserCapabilities browser = Request.Browser;
Response.Write(browser.EcmaScriptVersion.ToString());

因此,要确保在浏览器上启用了 javascript,您需要检查返回值是否等于或大于 1。这适用于普通浏览器,但当我在手机上测试时,返回值始终为0.0,无论我的 javascript 是启用还是禁用。

有没有办法检查是否在移动浏览器上启用了 javascript,或者浏览器是否会自行处理无法处理的问题?

【问题讨论】:

    标签: c# javascript asp.net mobile-phones mobile-website


    【解决方案1】:

    我自己也有同样的问题。我们最终编写了一小段 javascript,它将表单中隐藏变量的值设置为 1,并立即在欢迎页面上发回服务器,然后将此提示存储在会话中。

    它并不出色,但在所有不同的移动浏览器以及我们发现的不同问题之间,这是我们唯一可以回复的一个

    【讨论】:

    • 这听起来像是一个合乎逻辑的计划。如果值为 1,则启用,否则无法进行更改并禁用 javascript。让我试一试,然后回复你。
    • 你要小心,因为很多浏览器可以支持这个测试,但是他们不能支持其他特性
    【解决方案2】:

    如果您想使用 ASP.NET 来尝试确定这一点,请确保您使用的是最新版本的 Mobile Device Browser File。没有这个,ASP.NET 对检测移动浏览器的支持非常有限。

    但是,检测浏览器支持的唯一可靠方法是在页面上(在浏览器中)进行检测。服务器可以判断的最好方法是浏览器是否支持 JavaScript,但不知道用户是否在浏览器设置中关闭了此功能。

    在为移动网络实现时,您还需要注意不同的浏览器不会实现所有 JavaScritp 功能。这意味着仅仅检测 javascript 可能还不够。您需要测试您所追求的各个功能。这绝对不能由任何当前可用的服务器端设备能力数据库来完成。

    当涉及到移动网页上的 JavaScript 时,请考虑使用渐进增强。这将有助于确保您的网站可供更多人使用。

    【讨论】:

    • 重要提示:此项目不再受支持,将于 2010 年 10 月 29 日删除,mdbf.codeplex.com
    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2013-07-19
    • 1970-01-01
    • 2017-01-25
    • 2011-10-17
    相关资源
    最近更新 更多