我有一个网站通过javascript(而不是我的设计)呈现几乎所有内容,当然,这在Internet Explorer中引起了很多问题。反复出现的问题是,当用户将安全性设置为“高”时,必要的javascript文件会被阻止,我相信因为它们来自另一个域。这与Drupal设置有关,我不完全确定,但重要的是要知道文件是从不同的域提供的,我无能为力。
我的客户想要的是在这些脚本被阻止时弹出警报,告诉用户如何更改其安全设置。
1)如果我在同一个域上添加一个javascript文件,它不会被阻止,对吧?
2)有没有办法可以检测用户的安全设置是什么,或者检测是否使用javascript阻止了脚本?
答案 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的解决方案无法提醒被阻止的客户端,我认为因为警报需要生成脚本。但是,我相信这会起作用(不会吗?):
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;