javascript
  • pdf
  • hyperlink
  • adobe
  • 2011-05-13 55 views 4 likes 
    4

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

    <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得到很好的触发,但对象“开门红”没有定义。 (ReferenceError: opener is not defined 1: Link:Mouse Up)我正在寻找甚至可能做什么?我会用什么来访问开放窗口的uri?

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

    回答

    2

    HTML和PDF不使用相同的对象模型。尽管如此,有可能获得HTML和PDF JS给彼此交谈:

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

    +0

    查看livedocs.adobe.com/flex/3/html/help.html?content=PDF_1.html看起来好像你已经倒退了。这用于从包含文档发送消息到PDF中。我仍然无法从PDF中将消息发送到包含的文档中。 – 2011-05-19 15:22:06

    +0

    然后你不是在正确的对象上调用它。你能否更新你的问题以显示你在PDF和HTML中使用的脚本? – 2011-05-19 17:08:30

    +0

    这里有一个现成的例子,声称做(几乎)我想要的 - 从文档发送消息到周围的HTML。 http://www.windjack.com/WindJack/Browser2PDF/brwsr2acroJS.htm它只是不起作用,似乎误导了。 Adobe文档中描述的API用于其他方式。我无法为无法完成的事情提供代码(工作或非工作)? – 2011-05-19 18:22:33

    0

    实现目标的一个简单的方法是创建一个PDF超链接与href="javascript:myfunction()",并在你的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对象模型如常。

    相关问题