Если вы посмотрите Acrobat JS Reference для минимальной версии, которую хотите поддерживать, вы увидите документацию по объекту HostContainer.
В PDF:
this.hostContainer.messageHandler =
{
onMessage: function(messageArray)
{
for(var i = 0; i < messageArray.length; i++)
console.println("Message " + i + ": " + messageArray[i]);
},
onError: function(error, messageArray){ },
onDisclose: function() {return true;}
};
В вашем HTML, если ваш PDF находится внутри тега <object id="thePdf">
:
function messageFunc(messageArray) {
for(var i = 0; i < messageArray.length; i++)
alert("Message " + i + ": " + messageArray[i]);
}
document.getElementById("thePdf").messageHandler = { onMessage: messageFunc };
В вашем PDF вам также нужно изменить ссылки, чтобы они имели действие JS, которое отправляло бы сообщение на содержащую веб-страницу. Это можно сделать программно (в зависимости от используемого языка или библиотеки) или вручную в Acrobat Pro.
this.hostContainer.postMessage(["urlClicked", "http://blah.blah.blah..."]);
Не очень сложно, но никто никогда не слышал об этом. Я был бы ошеломлен , если бы это работало где-нибудь за пределами Adobe Viewer (Reader / Acrobat) в течение следующих нескольких лет.
Если по какой-то причине вы хотите отправить сообщение из своего HTML-файла в PDF, оно выглядит примерно так:
var thePDF = document.getElementById("thePdf");
thePDF.postMessage(["This", "is", "an", "array", "too."]);
Вы можете даже вытащить все существующие ссылки и получить PDF-запрос, чтобы ссылки открывались оберточной HTML-страницей ... таким образом, вы можете дать новым именам окон, закрыть их из JS и т. Д. правый шикарный.
Но вы должны иметь возможность изменять PDF-файлы.