JavaScript String von PDF-iframe zum Parent senden

Photon

Commodore
Registriert
Apr. 2006
Beiträge
5.036
Hallo Community,

ich hänge nun schon seit Wochen an diesem Problem und komme nicht so recht weiter. Es wäre super, wenn die kollektive Intelligenz dieses Forums mir bei der Lösung helfen könnte! :)

Es geht um Folgendes: Ich möchte eine Navigation für PDF-Skripte einer Vorlesung basteln, die aus zwei Teilen aufgebaut ist: Links das PDF, eingebunden in ein iframe; rechts eine interaktive Navigation. Es soll nun möglich sein, von der Navigation aus ein PDF ins linke iframe zu laden (das klappt auch) und umgekehrt vom PDF aus die Navigation im rechten iframe zu beeinflussen, wofür es nötig ist eine JS-Funktion aufzurufen und sie mit einem passenden Argument zu füttern.

Letzteres klappt leider überhaupt nicht. Mithilfe von FPDF/FPDI ist es mir gelungen Links in die PDF-Dateien zu setzen, allerdings klappen nur "gewöhnliche" Links mit einem "http(s)" vorne dran, keine "javascript:"-Aufrufe. Deshalb kam die Idee auf, einen Link auf dieselbe PDF-Datei zu setzen, die eh schon im iframe geladen ist, diesen allerdings mit einem Hash zu erweitern und dann vom parent aus den Hash auszulesen.

Hier gibt es allerdings folgende Probleme:

1. Wenn ich versuche den Hash auszulesen mit iframe-id.contentWindow.location.href, bekomme ich die Meldung
Code:
Permission denied to access property "href" on cross-origin object

selbst wenn das PDF im gleichen Verzeichnis liegt, wie die HTML-Datei, in die es eingebunden ist. Ich vermute, es liegt daran, dass der im Browser integrierte PDF-Reader lokal auf dem Nutzer-PC liegt, während die Parent-HTML auf dem Server liegt, deshalb ist es also "cross-origin". Macht die Vermutung Sinn und würde es ggf. helfen das PDF mittels pdf.js einzubinden, das auf dem Server liegt?

2. Das Zugreifen auf den Hash muss automatisch passieren, sobald der Link im PDF geklickt wurde. Allerdings hat das PDF-iframe kein onclick-Event (https://stackoverflow.com/questions...events-to-iframe-which-has-pdf-document-in-it) und Hacks wie in der zweiten Antwort von https://stackoverflow.com/questions/15080222/add-click-event-to-iframe beschrieben, führen dazu, dass zwar ein Klick vom Parent registriert wird, aber der PDF-Viewer nicht mehr benutzbar ist und insbesondere der Link im PDF nicht mehr anklickbar ist.

Ich würde mich riesig über Ideen freuen, wie man das Problem lösen kann, ich weiß mittlerweile überhaupt nicht weiter...

Vielen Dank im Voraus!
Photon
 
Danke für den Tipp! Das habe ich vergessen zu schreiben, gerade heute wurde ich auf genau diese Herangehensweise hingewiesen, die bei der SO-Antwort beschrieben wird. Das Problem ist, das iframe muss ja dann selbst einen JS-Befehl ausführen, kann es aber nicht, wenn nur ein PDF da drin sitzt. Oder erübrigt sich das Problem mit der Nutzung von PDF.js?
 
Zurück
Oben