我想知道用户是否启用了javascript,我不想在HTML中使用无脚本标记,因为我不想让用户下载javascript和无脚本标记的额外脚本。。
有人有主意吗?
您可以使用AJAX请求一个php页面,在那里您可以设置一个cookie,该cookie将用作JS激活的标志。在js脚本中,如果设置了cookie,则可以检查是否存在cookie,这意味着用户启用了js的
不幸的是,这不是你能做的。PHP代码通常在浏览器呈现任何代码之前就完全执行了。
浏览器中Javascript的禁用不会在初始头请求中报告给PHP。最接近的方法是使用Javascript对PHP进行AJAX调用,以检测Javascript的存在。如果回调失败,则可以认为它已被禁用。
类似的问题:php能检测javascript是否打开吗?
test.php
<script>
//// query string
if(/[?&]js=1/g.test(window.location.href) == false)
window.location.href += (window.location.href.indexOf("?") == -1 ? "?" : "&") + "js=1";
//// OR session cookie
if(document.cookie.search(/(^|;)js=1/) == -1) {
document.cookie = "js=1; path=/";
document.location.reload();
}
</script>
<?php
$_GET["js"];
////
$_COOKIE["js"];
?>
有很多方法可以做到这一点。使用JavaScript在客户端设置cookie,然后重新加载页面,或者执行上述操作并向URL添加查询字符串。PHP可以检查cookie或查询字符串,并设置一个会话变量,说明该用户启用了JS。