有没有办法可以检测用户是否在>>加载页面后禁用了JavaScript 以便呈现<noscript>
个标记?服务器端或客户端都没问题。
答案 0 :(得分:5)
您可以尝试在<noscript>
标记内放置一个图像,该标记将指向您的php文件,而该文件又应返回图像。这可以让您在服务器中知道用户已禁用Javascript。
如何识别用户:您可以依赖会话,或将ID设置为图像的网址。
您可以使用此问题的答案作为如何从php脚本服务器图像文件的示例,您可以在其中添加逻辑以检测用户是否已禁用js:
答案 1 :(得分:3)
这是我很久以前从书中得到的一个想法
<script>
document.cookie= "js_enabled=true";
</script>
在您看到的第一页上使用上述内容。然后在下一个请求中检查该cookie,看看是否启用了javascript。当然,如果禁用cookie,这也有同样的缺陷。
答案 2 :(得分:1)
不...在加载页面之后任何类型的这种检测都必须用js检测,如果它被禁用,它甚至都不能做任何事情。
答案 3 :(得分:1)
为什么不一直只渲染NOSCRIPT标签?这就是该标记的重点,即在禁用JS时提供内容。如果用户看到NOSCRIPT中的内容,那么他们显然没有启用JavaScript。
您还可以在页面加载时激活JavaScript AJAX。如果您的服务器收到页面请求,但是在标准加载时间范围内没有收到客户端的AJAX调用,那么服务器可以假设客户端不接受JS。不是很完美,但是你在这里处理客户端JS。
答案 4 :(得分:0)
我认为没有一种好的方法可以进行服务器端的JS检测。 <noscript>
是指定非javascript内容的语义方式 - 所以我想要检测JS是否被禁用,你应该检测它是否已启用。您可以默认隐藏检测,并在<style>
内放置<noscript>
块以取消隐藏。