javascript
  • pdf
  • hyperlink
  • adobe
  • 2011-05-13 34 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對象模型如常。

    相關問題