2009-07-16 72 views
1

我想获得任何浏览器的JavaScript状态。 我如何得到这个?我如何获得任何浏览器的JavaScript状态?

意思是当页面加载时,它应该显示该浏览器中的javascript是启用还是禁用。

我使用PHP。

在此先感谢......

+0

其实我想获取php变量中的任何浏览器的JavaScript状态。 所以我可以根据它加载不同的东西... – Avinash 2009-07-16 05:07:05

回答

8

为标签中的JavaScript未启用浏览器添加消息。

实施例:

<noscript> 
<p> Javascript is not enabled. Please enable it. <p> 
</noscript> 

因此如果未启用的JavaScript然后将显示上述消息。

0

在body标签中调用javascript函数onload。该函数设置一个JavaScript变量,在此浏览器中启用JS。默认情况下,你认为JS被禁用。

只有JS启用时才会调用Javascript,否则不会发生任何事情。在这个函数中,你可以使用document.write来显示你想要的。

1

如果你想在服务器端检测,如果浏览器中运行JS - 运行在浏览器中的一些测试脚本,它发送AJAX POST请求与结果返回给服务器

交替的JavaScript设置cookie

然后比较结果与预期。

+0

如果您需要了解服务器端,那么设置cookie可能是您最安全的选择。如果在浏览器中禁用了JavaScript,则为 – Prestaul 2009-07-16 05:31:51

0

我能想到的最原始的方式是让HTML输出成为JavaScript函数调用,例如postbackDoesExecute(),它向PHP脚本发出AJAX请求,称之为jsCallback.php。当从AJAX请求调用jsCallback.php时,它会使用Javascript = true或其他来更新用户的会话(或数据库条目,具体取决于您选择实现它的方式)。如果没有记录这个条目,那很明显,要么是请求超时,要么是对postbackDoesExecute()的JavaScript调用从未发生,这意味着JavaScript未启用。

只是一个想法...

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> 
0

如果你需要你的应用程序中显示依赖于JavaScript的可用性两种不同的状态,你可以尝试一些哈克像创建一个中途页。

本页面将包含类似

<meta http-equiv="refresh" content="5;URL=mysite.php?js=0"> 
<script type="text/javascript"> 
    window.location.replace("mysite.php?js=1"); 
</script> 

这将重定向人使用JavaScript一个页面和其他人不同的页面。虽然这有点不好意思。

如果你的用户去通过一个登录页面,你也可以在你的登录页面一个额外的隐藏字段:

<input id="hasJs" type="hidden" name="hasJs" value=""> 

然后

<script type="text/javascript"> 
    document.getElementById('hasJs').value = '1'; 
</script> 

H个 索林

相关问题