【问题标题】:window.open(url) fails to download the pdf filewindow.open(url) 无法下载 pdf 文件
【发布时间】:2011-07-26 11:08:22
【问题描述】:

我正在尝试使用 window.open(url) 打开一个指向 PDF 的 URL。在 IE 中,弹出窗口闪烁,之后没有任何反应。当我使用 IE 直接访问相同的 url 时,PDF 会完美打开。 在下面的 HTML 中,当我单击链接时,我得到了 PDF,但 window.open 失败。此外,如果我在 window.open 中提供 PDF 的直接链接,也可以完美运行。任何机构都可以对此有所了解吗?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
    <a href="http://phx.corporate-ir.net/External.File?item=UGFyZW50SUQ9NDk2Mjl8Q2hpbGRJRD0tMXxUeXBlPTM=&t=1">Link</a>
<script>
    url = "http://phx.corporate-ir.net/External.File?item=UGFyZW50SUQ9NDk2Mjl8Q2hpbGRJRD0tMXxUeXBlPTM=&t=1";        
    window.open(url);           
</script>
</BODY>
</HTML>

谢谢

【问题讨论】:

    标签: javascript


    【解决方案1】:

    大多数浏览器在没有用户交互的情况下调用window.open 时会阻止window.open,以避免弹出广告。

    为什么还要这样做?相反,您应该直接链接到原始文档中的 PDF,如果必须在新窗口中,您可以使用 target="_blank"。 (请记住,如果网站打开新窗口,有些用户会不喜欢它)。

    【讨论】:

    • 我没有直接的 PDF 链接;当我访问我在代码中提到的 URL 时,它会生成 PDF 并返回。
    • 然后在新窗口中打开此文档并重定向到 PDF - 最好是服务器端,或者如果这是不可能的 - 使用window.location.replace(url)
    【解决方案2】:

    这可能只是我的惯例,但我总是这样使用window.open()

    var win = window.open(url);
    

    【讨论】:

    • 任何一种方式都有效。如果您不需要访问刚刚创建的窗口(如 OP 的情况),则无需使用 open 方法的返回值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多