JavaScript på en HTML-sida kan skicka ett meddelande till JavaScript i PDF-innehåll genom att anropa metoden
postMessage()
i det DOM-objekt som representerar PDF-innehållet. Ta till exempel följande inbäddade PDF-innehåll:
<object id="PDFObj" data="test.pdf" type="application/pdf" width="100%" height="100%"/>
Följande JavaScript-kod som finns i HTML-innehållet skickar ett meddelande till JavaScript-koden i PDF-filen:
pdfObject = document.getElementById("PDFObj");
pdfObject.postMessage(["testMsg", "hello"]);
PDF-filen kan inkludera JavaScript för att ta emot det här meddelandet. Du kan lägga till JavaScript-kod i PDF-filer i vissa kontexter, inklusive dokument-, mapp-, sid-, fält- och gruppnivåkontexterna. Det är bara kontexten på dokumentnivå som definierar de skript som utvärderas när PDF-dokumentet öppnas som tas upp här.
En PDF-fil kan lägga till en
messageHandler
-egenskap till
hostContainer
-objektet. Egenskapen
messageHandler
är ett objekt som definierar hanterarfunktioner som svarar på meddelanden. Följande kod definierar till exempel funktionen som hanterar meddelanden som tas emot av PDF-filen från värdbehållaren (som är det HTML-innehåll som är inbäddat i PDF-filen):
this.hostContainer.messageHandler = {onMessage: myOnMessage};
function myOnMessage(aMessage)
{
if(aMessage[0] == "testMsg")
{
app.alert("Test message: " + aMessage[1]);
}
else
{
app.alert("Error");
}
}
JavaScript-koden på HTML-sidan kan anropa metoden
postMessage()
för det PDF-objekt som finns på sidan. När den här metoden anropas skickas ett meddelande (
"Hello from HTML"
) till JavaScript på dokumentnivå i PDF-filen:
<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>
Ett mer avancerat exempel och för information om hur du använder Acrobat 8 för att lägga till JavaScript i en PDF-fil finns i
Korsskriptning av PDF-innehåll i Adobe AIR
.