如何检测 javascript 文件是否被 IE11 安全设置阻止

How can I detect if javascript files are being blocked by IE11 security settings?

本文关键字:IE11 安全 设置 是否 文件 何检测 检测 javascript      更新时间:2023-09-26

我有一个网站,它通过javascript(不是我的设计)渲染几乎所有内容,当然,这在Internet Explorer中引起了很多问题。反复出现的问题是,当用户将安全性设置为"高"时,我相信必要的javascript文件会被阻止,因为它们来自另一个域。这与Drupal设置有关,我不完全确定,但重要的是要知道文件是从不同的域提供的,我对此无能为力。

我的客户想要的是每当这些脚本被阻止时弹出警报,告诉他们的用户如何更改他们的安全设置。

1)如果我在同一域上添加javascript文件,它不应该被阻止,对吗?

2)有没有办法检测用户的安全设置是什么,或者检测脚本是否被javascript阻止?

还有另一种方法可以检测 js 脚本是否已加载; 可能有很多东西,可能是他们的网络防火墙,操作系统级别的防火墙,浏览器安全设置,列表继续提供可能性。

您可以拥有:

<script src="http://yourdomain.com/the_js_script.js"></script>
<script>if (typeof foo == "undefined") {alert ('error loading script');}</script>

确保在the_js_script.js,你会有

var foo = 'Script loaded successfully'; 

您可以对所有 js 脚本执行此操作,并提醒不同的消息,以便用户至少知道哪些脚本被阻止或它们是否通过。

将 IE 安全设置为"高"将禁止所有脚本在浏览器中运行。

唯一可用的解决方法是使用 noscript html 标记放置警告消息。

<noscript>Your browser does not support JavaScript!</noscript>

我本来想评论@unixmiah的答案,但我没有足够的声誉,我相信这也是一个答案。Unixmiah 的解决方案无法提醒被阻止的客户端,我认为因为警报需要生成脚本。但是,我相信这会起作用(不是吗?

jQuery(function($) {
    $(document).ready(function() {
      $("p#jstrap").hide();
    });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="jstrap">You seem to have switched Javascript off.</p>