是否有任何方法可以检测用户是否在加载页面后禁用JavaScript 以便呈现<noscript>
标记?服务器端或客户端都可以
您可以尝试将图像放入<noscript>
标记中,这将指向您的php文件,反过来它应该返回图像。这可以让你在服务器上知道用户禁用了Javascript。
如何识别用户:您可以依赖会话,或者将ID设置为图像的url。
你可以用这个问题的答案作为一个例子,如何从一个php脚本服务器图像文件,你可以添加你的逻辑来检测用户是否禁用了js:
返回一个PHP页面作为图像
这是我很久以前从一本书中得到的一个想法
<script>
document.cookie= "js_enabled=true";
</script>
在你看到的首页上使用上面的内容。然后在下一个请求中检查该cookie,看看是否启用了javascript。当然,如果cookie被禁用,这也有同样的缺陷。
no…任何一种这样的检测在页面加载后都必须被js检测到,如果它被禁用,它甚至不能做任何事情。
为什么不一直呈现NOSCRIPT标签呢?这就是标签的意义所在,在JS被禁用时提供内容。如果用户看到的是NOSCRIPT's中的内容,那么他们显然没有启用JavaScript。
还可以在页面加载时调用JavaScript AJAX。如果您的服务器接收到对页面的请求,但是在标准加载时间框架内没有收到客户端的AJAX调用,那么服务器可以假定客户端不接受JS。注意,这并不完美,但您在这里处理的是客户端JS。
我不认为真的有一个很好的方法来做服务器端JS检测。<noscript>
是指定非javascript内容的语义方式-所以我想,而不是检测如果JS被禁用,你应该检测它是否启用。默认情况下,您可以隐藏检测,并在<noscript>
中放入<style>
块以取消隐藏。