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

时间:2015-03-17 17:24:29

标签: javascript security internet-explorer

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

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

1)如果我在同一个域上添加一个javascript文件,它不会被阻止,对吧?

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

3 个答案:

答案 0 :(得分:0)

还有另一种检测是否加载了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脚本执行此操作,并警告不同的消息,以便用户至少知道哪些脚本被阻止或者是否已通过。

答案 1 :(得分:0)

将IE安全设置设置为“高”,禁用所有脚本在浏览器中运行。

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

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

答案 2 :(得分:-1)

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

&#13;
&#13;
jQuery(function($) {
    $(document).ready(function() {
      $("p#jstrap").hide();
    });
  });
&#13;
<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>
&#13;
&#13;
&#13;