1

这是我的场景:

我有一个包含多个链接的页面;每个链接旨在打开另一个包含 pdf 的窗口。问题是,我不能让该窗口直接转到 PDF,因为我不想让最终用户看到 PDF 位于另一个域中,并且我需要以不同于通常的方式命名 PDF出现。

那么我有两页:一个是空白的,只包含一个用于显示 pdf 的框架:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>[PDF]</title>
    </head>
    <frameset>
        <frame id="pdfFrame">
    </frameset>
</html>

在带有链接的页面上,我有以下调用此页面的函数(我们将上述页面称为“pdf.html”):

function OpenWindow(pdfTitle, pdfLocation)
{
    var myWindow = window.open("pdf.html", "", "toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=700,height=600");

    myWindow.document.title = pdfTitle; 
    myWindow.document.getElementById('pdfFrame').src = pdfLocation;
}

在大多数情况下,这似乎工作正常。但是,有时弹出窗口不会在上面设置标题/帧源的行之前加载,并且它会崩溃(或至少无法正确加载)。

我的问题是,有没有一种简单的方法让我在打开窗口后添加某种阻塞调用,等到我们准备好运行这段代码?

谢谢!

4

1 回答 1

3

在加载之前你不能真正阻止它,但你可以在弹出窗口中设置一个事件,如下所示:

myWindow.onload = function()
{
    document.title = pdfTitle;
    document.getElementById('pdfFrame').src = pdfLocation;
}
于 2008-12-17T17:38:03.123 回答