JavaScript in einer HTML-Seite kann durch Aufrufen der
postMessage()
-Methode des DOM-Objekts, das den PDF-Inhalt repräsentiert, eine Nachricht an JavaScript in PDF-Inhalt senden. Betrachten Sie beispielsweise den folgenden eingebetteten PDF-Inhalt:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
Der folgende JavaScript-Code im enthaltenden HTML-Inhalt sendet eine Nachricht an das JavaScript in der PDF-Datei:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
Die PDF-Datei kann JavaScript zum Empfangen dieser Nachricht enthalten. In einigen Kontexten, darunter Kontext auf Dokument-, Ordner-, Seiten-, Feld- oder Batchebene, können Sie PDF-Dateien JavaScript-Code hinzufügen. Hier wird nur auf Kontext auf Dokumentebene, der beim Öffnen des PDF-Dokuments zu bewertende Skripts definiert, eingegangen.
Eine PDF-Datei kann dem
hostContainer
-Objekt eine
messageHandler
-Eigenschaft hinzufügen. Die
messageHandler
-Eigenschaft ist ein Objekt, das Prozedurfunktionen zum Reagieren auf Nachrichten definiert. Der folgende Code definiert beispielsweise die Funktion zum Verarbeiten von Nachrichten, die die PDF-Datei vom Hostcontainer (dem HTML-Inhalt, der die PDF-Datei einbettet) erhält:
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
JavaScript-Code in der HTML-Seite kann die
postMessage()
-Methode des in der Seite enthaltenen PDF-Objekts aufrufen. Beim Aufrufen dieser Methode wird eine Nachricht (
"Hello from HTML"
) an das JavaScript auf Dokumentebene in der PDF-Datei gesendet:
<html>
<head>
<title>PDF Test</title>
<script>
function init()
{
pdfObject = document.getElementById("PDFObj");
try {
pdfObject.postMessage(["alert", "Hello from HTML"]);
}
catch (e)
{
alert( "Error: \n name = " + e.name + "\n message = " + e.message );
}
}
</script>
</head>
<body onload='init()'>
<object
id="PDFObj"
data="test.pdf"
type="application/pdf"
width="100%" height="100%"/>
</body>
</html>
Ein komplexeres Beispiel und Informationen zum Verwenden von Acrobat 8 zum Hinzufügen von JavaScript zu einer PDF-Datei finden Sie unter
Cross-Scripting von PDF-Inhalt in Adobe AIR
.