我的应用程序依赖于JavaScript,我想检查客户端浏览器的JavaScript是否已启用,并在关闭时发出警告消息。
答案 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;内容。