如何检查浏览器';s JavaScript是否已启用

如何检查浏览器';s JavaScript是否已启用,javascript,asp.net,Javascript,Asp.net,我的应用程序依赖于JavaScript,我想检查客户端浏览器的JavaScript是否已启用,并在其关闭时发出警报消息。将消息放入一个包装在标记中的。如果禁用JavaScript,将作为DOM的一部分呈现;如果启用了脚本,div将不在DOM中 例如,您可以将以下内容立即放在打开的标记之后,并通过CSS将其样式设置为红色背景,使其更加突出 <noscript> <div id="js-warning"> To be able to access al

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

将消息放入一个包装在标记中的
。如果禁用JavaScript,
将作为DOM的一部分呈现;如果启用了脚本,div将不在DOM中

例如,您可以将以下内容立即放在打开的
标记之后,并通过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>

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

避免使用黑客解决方案,并记住,对于使用屏幕阅读器的人来说,也存在可访问性问题。仅当禁用JavaScript时才显示内容。大多数屏幕阅读器用户都启用了JavaScript,因此他们将看到无法访问的脚本,而不是内容。

实际上有一个
标记,当JavaScript不可用时,您可以使用该标记显示其中包含的内容

比如:

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

必须启用javascript才能继续。
div不会显示他们是否有javascript,而且很容易判断javascript是否工作,无论您是否需要它将服务器ping回来让它知道,或者使用它执行一些更高级的功能。

如果它关闭,则发出警报消息是矛盾的,因为如果它关闭,则无法“执行”任何程序化的东西

但是,您可以采用另一种方式:在默认情况下显示该消息,并在打开时让JavaScript隐藏该消息(例如,通过将DIVs可见性设置为hidden)

或者依赖浏览器的标准遵从性并使用标记。如果未启用javascript,将显示中的内容。顺便说一句,确保设置脚本标记的type=“text/javascript”属性


另请参见

LOL:关闭javascript时发出警报消息