是的,我知道这个问题已经发布了,但是......我正在寻找一种方法来检查客户端是否启用了Javascript。
以下是我的想法:在每个加载页面,PHP都会将$_SESSION['is_js']
初始化为0
。然后,我希望AJAX(通过启动脚本php?)尝试将$_SESSION['is_js']
设置为1
。如果启用了JS,AJAX将成功,否则,值仍为0。
我不能使用jQuery或其他库...我必须用纯AJAX编写它(我的意思是不使用框架或librairies ),我不知道如何做到这一点。
修改:我无法使用Cookie。我不想使用<noscript>
。
答案 0 :(得分:1)
首先,您需要学习在纯JavaScript中进行ajax调用,某些网站如w3schools或others
在ajax调用的php文件中,您可以将会话变量设置为1。
但是可能有更好的方法来查找客户端是否启用了javascript。
编辑:我建议检查你的会话变量是否是,如果没有,请尝试ajax调用并将变量设置为0。如果在页面加载时变量设置且相等,则表示客户端没有启用javascript / xmlhttprequest。
对于会话,cookie存储在客户端。因此,如果客户拒绝存储任何cookie,您将永远不会在会话变量中提供信息。
答案 1 :(得分:0)
我会使用cookie。它的功能几乎相同 -
<?php
$_SESSION['js'] = (int) $_COOKIE['js']
setcookie('js', 0);
?>
<script type="text/javascript">
setCookie('js', 1);
</script>
您可以使用一组Cookie功能,例如http://www.w3schools.com/js/js_cookies.asp
祝你好运!答案 2 :(得分:0)
一种相当独特(和IMO跛脚)的方法是使用javascript下载假图像:
<script type="text/javascript">
var fake = new Image();
fake.src = "/sess_js.php";
</script>
不使用AJAX,jQuery,Cookies等。
答案 3 :(得分:0)
根据您的想法和您的要求,如果您不能使用jQuery或Prototype等库...您将被强制使用“原始” XMLHttpRequest对象。以下代码就是一个例子。
创建一个名为ajax_js_enabled_test.php的文件并将此代码放入其中:
<?php
if(isset($_GET['PHPSESSID'])) session_id($_GET['PHPSESSID']);
session_start();
if(isset($_SESSION['user_js_support']) && $_SESSION['user_js_support']) echo "Javascript enabled";
else $_SESSION['user_js_support'] = FALSE;
?>
<script type="text/javascript">
var XHR;
if (window.XMLHttpRequest){
// The code for IE7+, Firefox, Chrome, Opera, Safari
XHR=new XMLHttpRequest();
}else{
// The code for IE6, IE5
XHR=new ActiveXObject("Microsoft.XMLHTTP");
}
XHR.open("GET","http://127.0.0.1/check_js_user_support.php<?php echo '?PHPSESSID='.session_id(); ?>",true);
XHR.send();
</script>
<p>
<a href="<?php echo '?PHPSESSID='.session_id(); ?>">
Refresh
</a>
</p>
创建另一个名为check_js_user_support.php的文件并将此代码放入:
<?php
if(isset($_GET['PHPSESSID'])) session_id($_GET['PHPSESSID']);
session_start();
$_SESSION['user_js_support'] = TRUE;
?>
复制本地Web服务器根目录中的两个文件。从浏览器打开页面ajax_js_enabled_test.php。 AJAX请求启动,页面check_js_user_support.php将名为user_js_support的会话参数设置为TRUE。因此,通过按下刷新按钮,页面将被重新加载, $ _ SESSION ['user_js_support']将为TRUE ,脚本将写入:“启用Javascript”