我如何获得任何浏览器的javascript状态?

时间:2009-07-16 04:35:42

标签: php javascript

我想获得任何浏览器的javascript状态。 我怎么得到这个。?

表示页面加载时应显示该浏览器中的javascript是启用还是禁用。

我正在使用php。

先谢谢......

6 个答案:

答案 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个 索林