1

我想知道用户是否启用了 javascript,并且我不想在 HTML 中使用 no script 标签,因为我不希望用户下载 JavaScript 和 no script 标签的额外脚本。

有人有想法吗?

提前致谢,Din Bracha

4

3 回答 3

1

您可以使用 AJAX 请求一个 php 页面,您可以在其中设置一个 cookie,该 cookie 将用作 JS 激活的标志。在 js 脚本中,您可以检查是否存在 cookie,如果已设置,则表示用户启用了 JS

于 2013-02-05T16:57:20.150 回答
1

不幸的是,这不是您可以做到的。PHP 代码通常在浏览器呈现任何代码之前完全执行。

浏览器中 Javascript 的禁用不会在初始标头请求中报告给 PHP。您可以做的最接近的方法是使用 Javascript 对 PHP 进行 AJAX 调用以检测是否存在 Javascript。如果回调失败,那么您可以假设它已被禁用。

类似的问题:PHP 可以检测 javascript 是否开启?

于 2013-02-05T16:57:39.753 回答
0
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。

于 2013-02-05T16:59:14.977 回答