我想知道用户是否启用了 javascript,并且我不想在 HTML 中使用 no script 标签,因为我不希望用户下载 JavaScript 和 no script 标签的额外脚本。
有人有想法吗?
提前致谢,Din Bracha
我想知道用户是否启用了 javascript,并且我不想在 HTML 中使用 no script 标签,因为我不希望用户下载 JavaScript 和 no script 标签的额外脚本。
有人有想法吗?
提前致谢,Din Bracha
您可以使用 AJAX 请求一个 php 页面,您可以在其中设置一个 cookie,该 cookie 将用作 JS 激活的标志。在 js 脚本中,您可以检查是否存在 cookie,如果已设置,则表示用户启用了 JS
不幸的是,这不是您可以做到的。PHP 代码通常在浏览器呈现任何代码之前完全执行。
浏览器中 Javascript 的禁用不会在初始标头请求中报告给 PHP。您可以做的最接近的方法是使用 Javascript 对 PHP 进行 AJAX 调用以检测是否存在 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。