如何检查浏览器的JavaScript是否启用

时间:2010-09-17 21:18:02

标签: javascript asp.net

我的应用程序依赖于JavaScript,我想检查客户端浏览器的JavaScript是否已启用,并在关闭时发出警告消息。

4 个答案:

答案 0 :(得分:13)

将邮件放入包含在<noscript>标记中的<div>。如果禁用JavaScript,则<div>将呈现为DOM的一部分;如果启用了脚本,div将不在DOM中。

例如,您可以在打开<body>标记后立即添加以下内容,并通过CSS设置样式以使其具有红色背景以使其更加突出。

<noscript>
    <div id="js-warning">
        To be able to access all of our features, you need a browser that supports JavaScript, and it needs to be enabled.
    </div>
</noscript>

答案 1 :(得分:13)

实际上有一个<noscript>标记可用于在javascript不可用时显示其中包含的内容。

类似的东西:

<noscript>
    <div>
        You must enable javascript to continue.
    </div>
</noscript>

div只是不会显示他们是否有javascript,并且很容易判断javascript是否正常工作,无论你是否需要它来ping你的服务器让它知道,或者用它来执行一些更高级的功能

答案 2 :(得分:4)

“如果关闭时提出警告信息”是悖论,因为如果它被关闭,你就不能以编程方式“做”任何事情。

你可以反过来这样做:但是:默认情况下会显示该消息,并且如果打开它,则让JavaScript隐藏它(例如,通过将DIV的可见性设置为隐藏),

或者您依赖浏览器的标准合规性并使用&lt; noscript&gt;标签。 &lt; noscript&gt;里面的东西如果没有启用javascript,则显示。顺便说一句,请确保设置脚本标记的type =“text / javascript”属性。

另见http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.3

答案 3 :(得分:2)

浏览器可能具有“支持JavaScript”,但这并不意味着用户或管理员未禁用JavaScript。没有真正的方法来确定这一点。最佳实践决定了“渐进式增强”;也就是说,您的应用程序需要首先在没有JavaScript的情况下工作 - 然后为已启用它的那些(大多数)添加JavaScript功能。

http://www.alistapart.com/articles/progressiveenhancementwithjavascript/

http://www.webcredible.co.uk/user-friendly-resources/dom-scripting/progressive-enhancement.shtml

避免使用hacky解决方案,并牢记屏幕阅读器的用户也存在可访问性问题。 &LT; NOSCRIPT&GT;仅在禁用JavaScript时才会显示内容。大多数屏幕阅读器用户都启用了JavaScript,因此他们会看到您无法访问的脚本,而不是&lt; noscript&gt;内容。