如果浏览器启用了“增强安全配置”,是否有任何方法可以告诉javascript?
我一直遇到某些控件在动态加载的内容中无效的问题。只有在Windows Server 2003/2008系统上运行的浏览器才会出现这种情况 - 即使我将服务器添加到“受信任”区域也是如此。
也许有人已经开发出一种方法来完成这项任务?
提前致谢
答案 0 :(得分:3)
我们可以测试其影响,而不是直接测试IE ESC。
我发现启用ESC后,动态添加内容的onclick事件不会触发。 所以我直接测试这些事件。
var IEESCEnabled = true;
var testButton = $("<button style=\"display: none;\" onclick=\"IEESCEnabled = false; alert('No problems here.');\">Test IE ESC</button>");
testButton.click();
if (IEESCEnabled) {
alert("We have a problem.");
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
在我的应用程序中,这样的测试会将用户转发到解释其问题的页面。它伴随着一个noscript元素来检查它们是否正在运行JavaScript。
答案 1 :(得分:1)
我不认为这是可能的,如果它仍然存在,那么这个错误可能迟早会得到修复。
这种“额外安全性”的一个要点是客户端拥有它但服务器不能检测到它,因此他们无法知道何时试图绕过它,何时不能。
答案 2 :(得分:1)
使用增强的安全配置时,是否禁用了JavaScript?
然后,如果您只想向用户显示消息,只需在正常的html中显示消息并使用javascript隐藏它,这样只有没有javascript的用户才能看到它。如果您需要在服务器端处理它(例如输出不同版本的网站),只需包含javascript即可将用户重定向到启用javascript的版本。没有javascript的用户将保留在非js页面上。
如果仅禁用可编写脚本的activex,则应用相同的方法,只需插入activeX并尝试“编写”它,如果失败则可以重定向,显示消息等。
上述当然不会检测增强的安全配置本身,而是检测启用它时出现的症状。因此,它可能无法区分使用增强安全配置的用户和仅禁用JS / ActiveX的用户,或者首先使用不支持脚本编写的浏览器。
答案 3 :(得分:0)
我认为您可以在user agent string中查找SV1。