检测JavaScript是否启用

7

有没有一种方法可以测试是否启用了JavaScript,以确保在禁用或不可用时不会启动需要JavaScript的应用程序?


可能是重复的问题:如何检测JavaScript是否被禁用? - Mike Weller
6个回答

7

2
请记住noscript的注意事项 - 即使不使用它,也不能保证javascript可用或正常工作。您可以通过使用Firefox Web Developer关闭javascript来验证这一点。 - Colin Pickard
@Colin:NoScript用户将会遭受同样的问题:https://dev59.com/I3NA5IYBdhLWcg3wWsiK#993461 - Marcel Korpel

5
我往往采用以下方式。
1)默认情况下显示错误消息。
<div id="noJS">For use, you need JavaScript enabled. (nice images and perhaps a link to your fav. browser)</div>

2) 通过JavaScript禁用它并显示主应用程序容器。

$("#noJS").hide();
$("#app").show();

如果 JavaScript 只用于例如导航,您应该尝试提供一个非 JS 版本以增加您的受众群体。

2
stackoverflow也使用这种技术(在页面顶部显示红色横幅)。 - Colin Pickard
我会在这样的消息中将“js”扩展为“JavaScript”。许多最终用户可能不知道“js”是什么。 - scunliffe
3
那是jQuery。也许值得一提。 - Dan
1
@ColinPickard Stackoverflow使用<noscript>标签来显示警告div,而不是在这个答案中定义的方法。使用<noscript>是标准方法。 - saji89

3

默认情况下,提供无JavaScript版本。使用JavaScript立即将用户重定向到JavaScript版本(仅在启用JavaScript时才有效)。


2
场景如下:
  1. 访问者首次请求您的网站
  2. 提供一个页面,其中设置了两个cookie,一个使用JavaScript,另一个使用服务器端语言。
  3. 使用Header或Meta重定向到另一个测试页面。
  4. 在测试页面上,检查是否收到了服务器端传递的cookie,以查看是否启用了cookie支持,并测试是否已接收到JavaScript cookie以启用JS支持。
  5. 享受您新获得的知识。

0

不是在初始加载时。您可以尝试使用一些技巧,例如在JavaScript中设置cookie并在后续请求中进行检查。最好的方法是确保您的网站在没有JavaScript的情况下正常工作,并使用JavaScript提供更好的体验。


那些明确使用 JavaScript 的应用程序呢,比如 Gmail? - Tim
5
我的 Gmail 不需要 Javascript。Gmail 有一个仅使用 HTML 的版本,它使用 Javascript 来添加一些小功能,比如实时搜索联系人。 - strager

0
您可以创建一个带有<noscript>内容的页面,并使用JavaScript将其重定向到您的实际应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接