1

当我尝试在 IE 中检查弹出窗口的状态时遇到问题。

function openPopup(url)
{
    myWindow =  window.open(url, "_blank", "resizable=1,status=0,toolbar=0,menubar=0");
}

function checkPopup()
{
    console.log('Is closed : ' + myWindow.closed);
}

如果我调用openPopup(' http://someUrl.org/someHtml.html ')并在一段时间后调用 checkPopup() 一切正常,我会在控制台中显示“已关闭:false”,但是当我调用openPopup( ' http://someUrl.org/somePdf.pdf ')并在一段时间后checkPopup()函数我得到“已关闭:true”进入控制台。

似乎 IE 在其中创建了带有 pdf 的新窗口,而不是使用由 window.open() 创建的窗口

有人可以帮我吗?如何获得其中包含 PDF 文档的弹出窗口的真实状态?

4

1 回答 1

1

通过在弹出窗口中使用嵌入式 iframe 修复:

function openPopup(link) {
    var html = "<html><head><title></title>";
    html += "</head><body style='margin: 0;'>";
    html += "<iframe height='100%' width='100%' src='" + link +"'></iframe>";
    html += "</body></html>";
    win = window.open("", "_blank", "resizable=1,status=0,toolbar=0,menubar=0");
    win.document.write(html);
    return win;
}
于 2013-11-14T09:47:35.567 回答