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

我正在寻找围绕它包装一个 if/then 语句。

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

有帮助吗?

解决方案 4

我们正在谈论这样的事情吗:

JavaScript:

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

其他提示

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

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

使用 <noscript> HTML 标记。

不确定你想做什么,但如果你只是需要通知用户需要 Javascript,你可以使用“<noscript>”标签。如果您需要了解服务器信息,您可以从 javascript 向服务器发出 Ajax 样式请求。如果您收到请求,则 javascript 正在工作,否则它不会。

他要求检查 JavaScript 是否已启用。我只能想到完全按照OP所说的去做 - 如果JS被激活,尝试使用一些带有间隔的Javascript来发送回调 - 不幸的是,我不认为你可以检查服务器端是否启用了JS,这就是你使用标签的原因而不是从服务器呈现不同的内容。

如果你使用 不引人注目的 JavaScript 那么你不需要检查用户是否启用了 JavaScript。

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

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

是的,NoScript 片段是正确的。

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

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

我对CFML了解不多,但是.NET具有检测浏览器功能的能力。但是,它无法检测浏览器是否 有能力的 javascript,但它已经变成了 离开. 。所以,你也被困在那里了。

据我所知,除了 HTML noscript 标记之外,除了渐进式编写 javascript(请参阅渐进式增强)以便不需要检查 Javascript:off 之外,您无能为力。

我不懂JS,但是可以用JS修改页面内的链接吗?如果有人访问未修改的链接,则他们没有使用 JS,但如果他们访问了,那么他们就使用了 JS。这有意义吗?

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

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

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

你可以写

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

或者如果你想检查服务器端的js,则通过js编写一个cookie,然后在服务器上读取它。

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

一种可靠的方法是使用 javascript 的 $.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;
}
?>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top