【问题标题】:PDF document hyperlink javascript to alter parent window URIPDF文档超链接javascript更改父窗口URI
【发布时间】:2011-05-13 14:54:25
【问题描述】:

我有一个包含超链接的 HTML 网页(父级)。单击时,它会打开一个新窗口并显示另一个 HTML 文档(子):

 <a href="/testhtml.html" target="_blank">Open Child</a>

在子文档中有几个这样构造的链接:

 <a href="#" onclick='opener.window.location.href="/somewhere.html";
                   window.close();'>Make Parent Go Somewhere</a>

所以效果是你可以点击子窗口中的一个链接,它会导致父窗口转到那个新的uri,然后自己关闭。这非常有效。

我想用 PDF 作为子文档做同样的事情。我可以在 PDF 中嵌入超链接,甚至可以嵌入 Javascript:

  13 0 obj
  <<
  /Type /Action
  /S /JavaScript /JS
    (opener.window.location.href="/somewhere.html";)
  >>
 endobj

Javascript 被很好地触发了,但是对象“opener”没有被定义。 (ReferenceError: opener is not defined 1: Link:Mouse Up) 我想做的事有可能吗?我将使用什么对象来访问打开窗口的 uri?

PS:如果有问题,我确实可以控制用户的目标环境。我可以指定他们使用 Acrobat Reader,甚至是更高版本。

【问题讨论】:

    标签: javascript pdf hyperlink adobe


    【解决方案1】:

    HTML 和 PDF 不使用相同的对象模型。尽管如此,还是可以让 HTML 和 PDF JS 相互交流:

    Getting notified when the user clicks a link in an embedded PDF

    【讨论】:

    • 查看 livedocs.adobe.com/flex/3/html/help.html?content=PDF_1.html 似乎你已经倒退了。这用于将消息从包含的文档发送到 PDF。我仍然无法将 PDF 中的消息发送到包含的文档中。
    • 那么你没有在正确的对象上调用它。您能否更新您的问题以显示您在 PDF 和 HTML 中使用的脚本?
    • 这是一个现成的示例,声称可以(几乎)做我想做的事——从文档向周围的 HTML 发送消息。 windjack.com/WindJack/Browser2PDF/brwsr2acroJS.htm 它只是不起作用而且似乎被误导了。 Adobe 文档中描述的 API 是反过来的。我真的无法为无法完成的事情提供代码(工作或非工作)?
    • 链接的演示适用于我,在 Windows 7 64 位上使用 Acrobat Pro 10.0.3 和 FireFox 4.0.1。您使用的是什么 PDF 查看器/浏览器/操作系统?
    【解决方案2】:

    实现目标的一种简单方法是使用href="javascript:myfunction()" 创建一个PDF 超链接,并在您的HTML 网页中定义myfunction()。生成的 HTML 文件类似于:

    <html>
    <head>
     <script type="text/javascript">
        function myfunction(){
            alert("captcha!");
        }
     </script> 
    </head>
    <body>
    <object data="myfunction.pdf" type="application/pdf" width="100%" height="100%">
    </object>
    </body>
    </html>
    

    您的超链接 PDF 对象将是:

    <</Type /Action /S /URI /URI (javascript:myfunction\(\))>>
    

    在 myfunction() 中,您将能够像往常一样使用 HTML 对象模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2011-06-22
      • 2010-11-20
      • 1970-01-01
      • 2011-12-07
      相关资源
      最近更新 更多