在IE中打开一个弹出窗口 - “找不到会员”

时间:2009-06-12 16:14:30

标签: javascript internet-explorer pdf popup

当用户打开一个在里面打开PDF的弹出窗口时,会发生这种情况。 (这部分有效)。

然后,用户打开另一个弹出窗口,此时我收到此错误。

有一个good description and a possible solution here

我的问题是:

有更好的解决方案吗?打开窗户并立即关闭它对我来说似乎是一个愚蠢的解决方案。

2 个答案:

答案 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();

似乎适合我。