【问题标题】:View pdf file in a new window via javascript通过javascript在新窗口中查看pdf文件
【发布时间】:2017-05-21 18:07:51
【问题描述】:

我有以下 php 代码:

<span><?php if (!empty($post_file)){echo "PDF FILE: &nbsp&nbsp&nbsp&nbsp&nbsp <a href='./pdf/$post_file' title='PDF' onclick='pdfOpen();' rel='nofollow'><img src='./images/acrobat-reader.png' height='22px;' width='19px;'></a>";}?></span>

以及onclick事件的Javascript函数:

<script>
function pdfOpen(){
   window.open(this.href,'win2','status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no'); return false;   
};
</script>

问题是当我单击 img 时,pdf 文件在初始页面中正常打开,然后按照我在 Javascript 代码中设置的方式打开一个新窗口,但新窗口为空白...没有 url,没有 pdf,什么都没有。 . 我该如何解决? 非常感谢您的努力?

【问题讨论】:

标签: javascript php html


【解决方案1】:

由于onlick处理程序使用的代码sn-p出现问题:

    onclick="pdfOpen()"

这个字符串编译成一个用于设置链接的onclick属性的函数:

    function( event) {
        pdfOpen();
    }

它调用pdfOpen 而不将this 值设置为锚元素。试试

    onclick="return pdfOpen(this)"

标签中,结合

        function pdfOpen( anchor){
            window.open(anchor.href,'win2',
        'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=640,height=480,directories=no,location=no');
         return false;   
        };

当然,您可以设置并调用 event.preventDefault 而不是从 onclick 处理程序返回 false 以防止默认事件处理。

一个更好的选择可能是在 DOM 准备好后执行的脚本中添加或注册事件处理程序。这避免了与 HTML 中的代码 sn-ps 相关的问题,这些代码旨在在 HTML 3 下工作。

【讨论】:

    【解决方案2】:

    通常,实现此目的的最简单方法是在a 标记中使用target="_blank"。但正如here 指出的那样,这不能保证有效。这取决于用户的浏览器设置。

    【讨论】:

    • 非常感谢我的朋友我修复了它。问题是我必须放置 $(document).ready() 函数,以便 pdfOpen() 可以使用设置为锚元素的 href。您的建议帮助我解决了另一件事,
    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2012-08-08
    • 2018-03-17
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多