当用户打开一个在里面打开PDF的弹出窗口时,会发生这种情况。 (这部分有效)。
然后,用户打开另一个弹出窗口,此时我收到此错误。
有一个good description and a possible solution here
我的问题是:
有更好的解决方案吗?打开窗户并立即关闭它对我来说似乎是一个愚蠢的解决方案。
答案 0 :(得分:4)
我想我有一个更好的解决方案,不涉及先关闭窗口。问题是,如果您尝试使用空URL(即'')再次打开窗口,IE将不会覆盖窗口(PDF或其他)。但将覆盖具有非空URL的PDF。这可能是一个文件,但是关于:空白的工作效果更好(这通常是一个空URL)。
根据代码的编写方式,您可能仍然需要try / catch,但这样就不需要了:
windowHandle = window.open('about:blank',name,attributes);
windowHandle.document.location.href = url;
windowHandle.focus();
about:blank将强制PDF退出子窗口并允许您执行您需要执行的操作。将URL和focus()的设置放在windowHandle.onload()处理程序中可能不是一个坏主意,因此处理PDF时没有任何时间问题。即:
windowHandle.onload=function(){
windowHandle.document.location.href = url;
windowHandle.focus();
};
答案 1 :(得分:2)
我使用try catch块解决了这个问题。
windowHandle = window.open('',name,attributes);
try {
windowHandle.document.location.href = url;
} catch (exc) {
windowHandle.close();
windowHandle = window.open('',name,attributes);
windowHandle.document.location.href = url + suffix;
}
windowHandle.focus();
似乎适合我。