寻找一种方法来检测使用PHP禁用的javascript(不想在html中使用noscript)

时间:2013-02-05 16:51:59

标签: php javascript

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

有人有个主意吗?

先谢谢了, Din Bracha

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

类似的问题:Can php detect if javascript is on or not?

答案 2 :(得分: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。