【问题标题】:Prompt for activating JavaScript with server-side event handler提示使用服务器端事件处理程序激活 javascript
【发布时间】:2012-09-08 00:49:24
【问题描述】:

有没有办法提示用户使用服务器端事件处理程序激活 javascript,以防他们的 pc 上的 javascript 被关闭,他们将被要求在弹出窗口中按下按钮(我的意思是提交表单)或指定DIV才能激活javascript?

【问题讨论】:

  • 您是否要求提供可以强制用户浏览器启用 javascript 的代码?
  • 是的,代码本身应提供启用javascript的选项。谢谢,
  • 您不能强制浏览器启用 javascript。如果没有启用 javascript,它基本上是一个文本阅读器。
  • 据我记得,大约 14 年前,我通过按提示窗口或 div 中的按钮在浏览器中启用了 javascript。我现在想为自己实现相同的应用程序。
  • 您评论中的关键字“14 年前”从那时起,安全性变得更加严格。强迫浏览器在没有用户交互的情况下执行类似的操作被认为是不好的形式。你现在所能做的就是测试js并通知他们需要打开它。

标签: javascript javascript-events active-script


【解决方案1】:

不,没有办法做到这一点。但是,您可以提供一个 <noscript> 标签来解释用户如何打开 JS。

例如:

<script>alert('hi');</script>
<noscript>Please enable JS by opening preferences panel in your browser</noscript>

您可能希望使用服务器端浏览器嗅探为用户提供最相关的指导(通过告诉他们如何在他们当前使用的浏览器中执行此操作)。

【讨论】:

  • 类似的文章我已经看过很多次了。这不是我要找的。非常感谢。
  • 是的,这可能是一个临时解决方案。谢谢
【解决方案2】:

您可以设置一个具有特定 id 的 div,该 id 在页面加载时隐藏。然后在页面加载时隐藏 div。如果他们有 js,则 div 将隐藏。如果他们将其关闭(此时此地不太可能发生,但无论如何),他们就会看到 div。

<div id="hasJsOn">Please turn on javascript for full enjoyment of this page.</div>
<script>
document.getElementById("hasJsOn").style.display = "none";
</script>

【讨论】:

  • 很多次,我读到了这个解决方案。那不是我所追求的。非常感谢。
  • 你没有答案,这并不意味着我的问题不好。哈哈哈。
【解决方案3】:

您可以检测最终用户的机器上是否启用了 JS,您可以在他们访问的 next 页面上将该信息传递给服务器,方法是使用 Javascript 在表单/链接中添加 URI Component .

示例(未经测试的“即时”代码):

<form action="postit.php">
  <p>
    <input type="hidden" id="js_detector" value="0">
  </p>
</form>
<script>
  document.getElementById("js_detector").value = 1;
</script>

【讨论】:

  • 访问者在浏览器中的相应页面午餐后立即执行该操作。当服务器端代码检测到访问者的浏览器禁用了 javascript 时,应出现提示窗口。非常感谢,
  • 那么@Damir 对&lt;noscript&gt; 的评论是你最好的方法。这就是它在那里的原因。
猜你喜欢
  • 1970-01-01
  • 2016-07-13
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-15
  • 2011-08-29
相关资源
最近更新 更多