如何知道浏览器中的Javascript是否已关闭?

时间:2008-09-05 02:04:13

标签: javascript browser

我假设您无法使用JavaScript代码段来验证浏览器用户是否已关闭JavaScript。那么我可以使用什么呢?有人可以提供代码示例吗?

我想在它周围包装一个if / then语句。

如果有帮助的话,我经常用CFML编写代码。

16 个答案:

答案 0 :(得分:6)

这是一个彻头彻尾的黑客,但您可以在noscript标记内使用iframe来触发网址上的HTTP GET,告诉服务器用户没有启用javascript。

<body>
...
...
<noscript>
    <iframe src ="/nojs.aspx?SOMEIDENTIFIER=XXXX&NOJS=TRUE" style="display: none;">
    </iframe>
</noscript>
...
...
</body>

答案 1 :(得分:5)

使用&lt; noscript&gt; HTML标记。

答案 2 :(得分:5)

不确定您要做什么,但如果您只是需要告知用户需要使用Javascript,您可以使用'&lt; noscript&gt;'标签。如果您需要在服务器上知道,您可以从javascript向服务器发出Ajax样式请求。如果你收到请求,javascript正在工作,否则不是。

答案 3 :(得分:4)

我们在谈论这样的事情:

JavaScript的:

<body>
...
...
<script type="text/javascript">
<!--
document.write("Hello World!")
//-->
</script>
<noscript>Your browser does not support JavaScript!</noscript>
...
...
</body>

答案 4 :(得分:2)

他要求检查是否启用了javascript。 我只能想到OP所说的 - 如果JS被激活,尝试使用一些间隔的Javascript来发送回调 - 不幸的是我不认为你可以检查服务器端是否启用了JS这就是为什么你使用标签而不是而不是从服务器渲染不同的内容。

答案 5 :(得分:2)

如果您使用Unobtrusive JavaScript,则无需检查用户是否启用了JavaScript。

如果他们已启用JavaScript,那么他们将获得完整效果,但如果他们没有,那么用户仍然可以使用您的网站。除了更好的可访问性之外,您可能会发现这种方法可以提升您的搜索引擎优化。

答案 6 :(得分:1)

<noscript>
    ...some non-js code
</noscript>

答案 7 :(得分:1)

是的,NoScript代码段是正确的。

答案 8 :(得分:0)

你可能有javascript执行一些AJAX查询并检查它是否有。那些下载页面但不执行查询的人要么禁用JS,要么他们是机器人。

答案 9 :(得分:0)

你真正能做的就是在标签中添加一些信息。我似乎记得在某个地方在ASP.NET上尝试这个,但你真的只能告诉浏览器是否支持Javascript,而不是它是否实际允许/启用。

答案 10 :(得分:0)

我对CFML知之甚少,但.NET能够检测浏览器功能。但是,它无法检测浏览器是否具有能力的javascript,但是它已经关闭。所以,你也被困在那里。

除了HTML noscript标签之外,据我所知,除了逐步编写javascript(参见渐进增强)之外,你所做的并不多,所以你不需要检查Javascript:off。

答案 11 :(得分:0)

我不懂JS,但是可以用JS修改页面内的链接吗?如果有人进入未修改的链接,他们不使用JS,但如果他们这样做,那么他们正在使用JS。这有什么意义吗?

答案 12 :(得分:0)

没有往返就没有弄清楚如何做到这一点,所以这取决于你的目标是什么。

如果他们必须有javascript继续,那么我(在.net中)做了一些事情,比如在服务器端禁用登录按钮,然后用javascript启用它的客户端,并使用noscript标签显示错误消息。

如果必须以任何一种方式工作,您可以使用渐进增强,和/或使用js设置隐藏字段然后设置会话变量,但这意味着在他们到达第二个请求之前您不知道

答案 13 :(得分:0)

你可以写

<script type="text/javascript" language="javascript">document.write("<input type='hidden' name='hasJs' value='1' />");

或以其他方式通过js写一个cookie然后在服务器上读取它,如果你想检查服务器端的js。

答案 14 :(得分:0)

如果您正在寻找一种检查服务器端的方法,您可以向用户发送一个放置cookie的js ....如果cookie存在于请求中,那么您可以判断脚本是否有效不是!

答案 15 :(得分:0)

一种可行的方法是使用javascript&#39; $ .post向您的服务器发送备注。 (抱歉,如果有任何错误,写在我的脑海中,将在我开始测试时更新)。应该允许你构建它,这样你甚至可以从会话数据中提取,如果他们使用javascript,这将允许你提供javascript的替换,而不必诉诸。

您的页面脚本:

<script>
function myJavascriptTest(){
    $.post ()('myJavascriptTest.php', {myJavascriptOn: true}, function(){
    return true;
}
myJavascriptTest()
</script>

在目标.php ...

<?php

if ($_POST['myJavascriptOn'] == true){
    $_SESSION['javascriptIsOn'] = true;
} else {
    $_SESSION['javascriptIsOn'] = false;
}
?>