Pertanyaan Dokumen PDF hyperlink javascript untuk mengubah jendela induk URI


Saya memiliki halaman web HTML (induk) yang berisi hyperlink. Ketika diklik, ia membuka jendela baru dan menampilkan dokumen HTML lain (anak itu):

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

Di dalam dokumen anak ada beberapa tautan yang dibuat seperti ini:

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

Jadi efeknya adalah Anda dapat mengklik tautan di jendela anak, itu akan menyebabkan jendela induk untuk pergi ke uri baru tersebut, dan kemudian menutupnya sendiri. Ini bekerja dengan sangat baik.

Saya ingin melakukan hal yang sama dengan PDF sebagai dokumen anak. Saya dapat menanamkan hyperlink di PDF dengan baik, atau bahkan menanamkan Javascript:

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

Javascript terpicu dengan baik, tetapi objek "pembuka" tidak didefinisikan. (ReferenceError: opener is not defined 1: Link:Mouse Up) Apakah yang ingin saya lakukan mungkin terjadi? Apa yang akan menjadi objek yang akan saya gunakan untuk mengakses uri jendela pembuka?

PS: Jika itu masalah, saya punya kontrol atas lingkungan target pengguna. Saya dapat menentukan bahwa mereka menggunakan Acrobat Reader, dan bahkan versi yang lebih baru.


4
2018-05-13 14:54


asal


Jawaban:


HTML dan PDF tidak menggunakan model objek yang sama. Tidak kurang, ada kemungkinan untuk mendapatkan HTML dan PDF JS untuk berbicara satu sama lain:

Mendapatkan pemberitahuan ketika pengguna mengeklik tautan dalam PDF yang disematkan


2
2018-05-17 21:38



Salah satu cara mudah untuk mencapai tujuan Anda adalah membuat hyperlink PDF dengan href="javascript:myfunction()", dan mendefinisikan myfunction() di halaman web HTML Anda. File HTML yang dihasilkan akan menjadi sesuatu seperti:

<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>

Dan objek PDF hyperlink Anda akan menjadi:

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

Di dalam myfunction () Anda akan dapat menggunakan model objek HTML seperti biasa.


0
2018-05-26 13:50