我怎么知道浏览器内部的Javascript是否已关闭?

时间:2020-03-05 18:47:59  来源:igfitidea点击:

我假设我们不能使用JavaScript代码段来验证浏览器用户是否已关闭JavaScript。那我该怎么用呢?有人可以提供代码示例吗?

我正在寻找一个if / then语句。

如果有帮助,我经常使用CFML进行编码。

解决方案

回答

使用<noscript> HTML标记。

回答

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

回答

我们可能需要javascript执行一些AJAX查询并检查是否具有。那些下载页面但不执行查询的人或者禁用了JS,或者是机器人。

回答

他要求检查是否启用了javascript。
我只能考虑完全按照OP所说的做,如果不幸的是JS被激活,请尝试使用带有间隔的一些Javascript发送回调,不幸的是,我认为我们无法检查服务器端是否启用了JS,这就是为什么我们使用标记而不是渲染的原因来自服务器的不同内容。

回答

实际上,我们所能做的就是在标记中添加一些消息。我似乎记得在ASP.NET上的某个地方尝试过此操作,但是我们实际上只能说出浏览器是否支持Javascript,而不是实际上是否允许/启用了Javascript。

回答

我对CFML不太了解,但是.NET可以检测浏览器功能。但是,它无法检测浏览器是否支持javascript,但已将其关闭。所以,你也被困在那里。

据我所知,除了HTML noscript标记之外,除了逐步编写javascript(请参阅渐进式增强)之外,我们无能为力,因此我们无需检查Javascript:off。

回答

不确定我们要做什么,但是如果我们只需要告知用户需要Javascript,则可以使用'<noscript>'标记。如果我们需要在服务器上知道,则可以从javascript向服务器发出Ajax样式请求。如果我们收到请求,则javascript正常工作,否则无法正常工作。

回答

我不了解JS,但是可以使用JS修改页面内的链接吗?如果有人转到未修改的链接,则说明他们不在使用JS,但如果这样做,则说明他们正在使用JS。这有道理吗?

回答

我们是否在谈论这样的事情:

JavaScript:

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

回答

从来没有想过没有往返的方法,所以这取决于目标。

如果他们必须要使用javascript进行操作,那么我(在.net中)做了类似的事情,例如在服务器端禁用登录按钮,然后在客户端使用javascript启用了登录按钮,并使用noscript标记显示错误消息。

如果必须以任何一种方式工作,则可以使用渐进增强和/或者使用js设置隐藏字段,然后设置会话变量,但这意味着直到它们到达第二个请求时我们才知道。

回答

这是完全黑客,但我们可以在noscript标记内使用iframe来触发url上的HTTP GET,以告知服务器用户未启用JavaScript。

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

回答

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

回答

如果我们使用Unobtrusive JavaScript,则无需检查用户是否已启用JavaScript。

如果他们启用了JavaScript,那么他们将获得完整的效果,但是如果没有启用,那么用户仍然可以使用网站。并且除了更好的可访问性外,我们可能会发现这种方法可以提高SEO。

回答

你可以写

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

或者如果我们想检查服务器端是否有js,则通过js编写cookie,然后在服务器上读取它。