我想知道是否有人能够对我一直在努力解决的一个非常奇怪的IE9问题有所了解。
我完成了工作站点的制作 - 它在ff / chrome / ie7 / ie8中运行良好,没有脚本错误。
在IE9上,应用程序的最后一步会导致整个选项卡无白屏,没有脚本错误或警告。 (将文档模式更改为ie8将解决问题,但显然不适合生产)
不幸的是,该网站非常复杂,有大量的ajax和页内脚本,因此我无法轻松发布相关代码。我更想弄清楚如何诊断这个。
我检查了IE错误日志,但它们都是空的。 Web开发人员工具什么都没说。该网站没有使用任何插件(Flash / Silverlight,Ect。)只是javascript w / jQuery。
在失败的步骤周围的iframe中显示PDF - 但在上一步(使用相同的方法)中显示几乎相同的pdf而没有问题。代码在调用jquery UI窗口时失败,但我似乎无法获得确切的行。
如果有人知道如何进一步诊断这一点,我真的很感激。我可以继续寻找虫子,但我以前从未见过这种行为,只是不确定我在寻找什么。
答案 0 :(得分:9)
感谢您的所有输入。抱歉,我完全被一些项目所淹没,所以我无法发布调试步骤的更新。
它花了很长时间,但当我关闭包含第一个PDF的对话框时,我终于意识到一切都崩溃了。
我的一个辅助函数是打开对话框并在关闭时自动销毁内容。通常,这可以正常工作,因为我要么删除包含页面片段的div或iframe。
在这种情况下,我在对话框中加载了一个页面片段,其中包含一些按钮和pdf iframe。我在包含iframe而不是iframe本身的父元素上调用了.remove()方法。出于某种原因,这似乎在其他所有浏览器中都能正常工作 - 但在IE9中,它几乎杀死了页面呈现而没有任何警告或消息。
我强烈怀疑罪魁祸首是adobe插件,但我并不完全确定。
以下是修复
HTML:
<div id="container">
<iframe src="loremipsum.pdf"></iframe>
</div>
Javascript:
//Ruins my entire week
$("#container").remove();
//Works as the pdf is removed directly
$("#container").find("iframe").remove().end().remove();
答案 1 :(得分:1)
我尝试使用AngularJS删除div中的iframe时,在IE11上遇到了同样的问题。首先删除iframe会导致同样的问题,所以我先将iframe src导航到一个新页面(about:blank),然后删除有效的div。希望这可以帮助有类似问题的人。
下面的伪代码:
$ctrl.iframeUrl = 'about:blank'; // change the iframe url here
$timeout(function(){
$ctrl.removeIframe(); // remove the iframe here
});
答案 2 :(得分:0)
作为尝试的事情 - 看看IE9 DOM查看器中的屏幕后是什么。有很大的机会,大多数东西都存在,只是没有正确渲染(或有其他东西渲染)。至少,知道它是否从DOM中丢失了大量的东西应该会给你一些有用的数据。