我想获得任何浏览器的javascript状态。 我怎么得到这个。?
表示页面加载时应显示该浏览器中的javascript是启用还是禁用。
我正在使用php。
先谢谢......
答案 0 :(得分:8)
在标记中为未启用javascript的浏览器添加消息。
示例:
<noscript>
<p> Javascript is not enabled. Please enable it. <p>
</noscript>
因此,如果未启用javascript,则会显示上述消息。
答案 1 :(得分:1)
如果你想在服务器端检测浏览器是否运行js - 在浏览器中运行一些测试脚本,它会将ajax post请求发送回服务器
或者让javascript设置一个cookie
然后将结果与预期进行比较。
答案 2 :(得分:1)
可能有点矫枉过正,但是这个脚本试图运行jsTest函数。如果运行,它会将div的文本设置为启用JavaScript。如果它没有运行,则说明JavaScript被禁用的文本将保留。
<html>
<head>
<script type="text/javascript">
function jsTest()
{
var jsStatusDiv = document.getElementById("jsStatus");
jsStatusDiv.innerHTML = "JavaScript Enabled";
}
</script>
</head>
<body onload="jsTest();">
<div id="jsStatus">JavaScript Disabled</div>
</body>
</html>
答案 3 :(得分:0)
在body标签中调用javascript函数onload。该函数设置了一个javascript变量,该变量在此浏览器中启用了JS。默认情况下,您假设JS已禁用。
只有在启用JS时才会调用Javascript,否则不会发生任何事情。在该函数中,您可以使用document.write来显示您想要的内容。
答案 4 :(得分:0)
我能想到的最原始的方法是让HTML输出一个JavaScript函数调用,例如postbackDoesExecute(),它向PHP脚本发出一个AJAX请求,称之为jsCallback.php。当从AJAX请求调用jsCallback.php时,它会使用Javascript = true或其他内容更新用户的会话(或数据库条目,具体取决于您选择如何实现它)。如果未记录此条目,则很明显请求已超时或者对postbackDoesExecute()的JavaScript调用从未发生过,这意味着未启用JavaScript。
只是一个想法...
答案 5 :(得分:0)
如果您需要应用程序根据JavaScript可用性显示两种不同的状态,您可以尝试一些hacky,例如创建中间页面。
此页面包含类似
的内容<meta http-equiv="refresh" content="5;URL=mysite.php?js=0">
<script type="text/javascript">
window.location.replace("mysite.php?js=1");
</script>
这会将使用Javascript的人重定向到一个页面,将其他人重定向到另一个页面。虽然有点hacky。
如果您的用户通过登录页面,您还可以在登录页面中添加一个额外的隐藏字段:
<input id="hasJs" type="hidden" name="hasJs" value="">
然后
<script type="text/javascript">
document.getElementById('hasJs').value = '1';
</script>
H个 索林