代码之家  ›  专栏  ›  技术社区  ›  John

修改由javascript的“window.open()”函数打开的窗口

  •  1
  • John  · 技术社区  · 16 年前

    以下是我的场景:

    我有一个包含几个链接的页面;每个链接都是为了打开另一个包含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;
    }
    

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

    我的问题是,是否有一个简单的方法可以让我在打开窗口后添加某种阻塞调用,等待我们准备好运行此代码?

    谢谢!

    1 回复  |  直到 16 年前
        1
  •  3
  •   Greg    16 年前

    在加载之前无法真正阻止,但可以在弹出窗口中设置事件,如下所示:

    myWindow.onload = function()
    {
        document.title = pdfTitle;
        document.getElementById('pdfFrame').src = pdfLocation;
    }
    
    推荐文章