乐闻世界logo
搜索文章和话题

如何检测 javascript 是否被禁用?

3个答案

1
2
3

在HTML页面中,如果用户的浏览器禁用了JavaScript,你可以使用 <noscript>标签来显示一条替代性的信息。例如:

html
<!DOCTYPE html> <html> <head> <title>检测JavaScript是否启用</title> </head> <body> <!-- 如果JavaScript被启用,下面的内容将会被显示 --> <script type="text/javascript"> document.write("JavaScript已经被启用!"); </script> <!-- 如果JavaScript被禁用,<noscript>里的内容将会被显示 --> <noscript> <p>JavaScript被禁用了。本网站的某些功能可能无法正常工作,请启用JavaScript。</p> // 或者 <meta http-equiv="refresh" content="0; url=whatyouwant.html" /> </noscript> </body> </html>

上面的例子展示了当JavaScript被禁用时,页面会展示 <noscript>标签里面的内容。如果JavaScript是启用的,<script>标签内的代码会被执行,并且页面会显示“JavaScript已经被启用!”的消息。

请注意,使用 <noscript>标签只是一种给用户提示信息的简单方式,并不是一种程序化的检测方法。如果你需要在服务器端检测JavaScript是否被禁用,通常需要使用不依赖于JavaScript的后备方法,比如通过表单提交来判断,因为没有JavaScript支持,异步的JavaScript请求(例如使用Ajax)将不会发生,只能依靠传统的同步请求。

2024年6月29日 12:07 回复

我假设您正在尝试决定是否提供 JavaScript 增强内容。最好的实现会彻底降级,以便网站在没有 JavaScript 的情况下仍然可以运行。我还假设您指的是服务器端检测,而不是<noscript>出于无法解释的原因使用该元素。

没有好的方法来执行服务器端 JavaScript 检测。作为替代方案,可以使用 JavaScript 设置 cookie,然后在后续页面视图中使用服务器端脚本测试该 cookie。然而,这不适合决定要传送什么内容,因为它无法将没有 cookie 的访问者与新访问者或不接受 JavaScript 设置 cookie 的访问者区分开来。

2024年6月29日 12:07 回复

这对我有用:如果禁用 javascript,它会重定向访问者

shell
<noscript><meta http-equiv="refresh" content="0; url=whatyouwant.html" /></noscript>
2024年6月29日 12:07 回复

你的答案