Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iFrame中的postMessage到PDF_Javascript_Pdf_Acrobat - Fatal编程技术网

Javascript iFrame中的postMessage到PDF

Javascript iFrame中的postMessage到PDF,javascript,pdf,acrobat,Javascript,Pdf,Acrobat,这是我的情况 我有一个嵌入PDF格式的网页。我们使用基本对象标记(嵌入到FF中)加载PDF文件,如下所示: <object id="pdfForm" height="100%" width="100%" type="application/pdf" data="..url"></object> function save() { sendMessage(["submitForm"]); } function sendMessage(aMessage) {

这是我的情况

我有一个嵌入PDF格式的网页。我们使用基本对象标记(嵌入到FF中)加载PDF文件,如下所示:

<object id="pdfForm" height="100%" width="100%" type="application/pdf" data="..url"></object>
function save() {
    sendMessage(["submitForm"]);
}

function sendMessage(aMessage) {
    pdfObject = document.getElementById("pdfForm");

    if (typeof(pdfObject) == "undefined")
      return;

    if (typeof (pdfObject.postMessage) == "undefined")
      return;

    pdfObject.postMessage(aMessage);
}
这一切都很顺利

但是我们在Firefox中遇到了一个问题,因此我们需要使用iFrame而不是object标记嵌入PDF。现在,使用以下代码嵌入PDF:

<iframe id="pdfWrapper" src="..someUrl" width="100%" height="800px" frameborder="0"></iframe>
有什么帮助吗?很抱歉问了这么长的问题

编辑:我被要求在代码中提供示例,以便人们可以测试消息是否有效。本质上,您只需要嵌入此javascript的任何PDF

function myOnMessage(aMessage) {
    app.alert("Hello World!");
}

function myOnDisclose(cURL, cDocumentURL) {
    return true;
}

function myOnError(error, aMessage) {
    app.alert(error);
}

var msgHandlerObject = new Object();
msgHandlerObject.onMessage = myOnMessage;
msgHandlerObject.onError = myOnError;
msgHandlerObject.onDisclose = myOnDisclose;
msgHandlerObject.myDoc = this;

this.hostContainer.messageHandler = msgHandlerObject;
我意识到您需要Acrobat pro使用javascript创建PDF,因此为了简化这一过程,我在以下url上发布了示例代码(工作和非工作场景):

如果使用Windows,可以下载zip文件并将其解压缩到/inetpub/wwwroot,然后将浏览器指向works.htm或fails.htm


感谢您提供的帮助。

对于Internet Explorer,请使用:

<object id="pdfForm" type="application/pdf" data="yourPDF.pdf"></object>

对于Firefox,请使用:

<embed id="pdfForm" type="application/pdf" src="yourPDF.pdf"></embed>

您还可以使用此命令访问嵌入对象

var emb = document.getElementsByTagName("EMBED")[0];

但您将从包含页面运行该代码,因此获取对iframe的引用,而不是仅在文档中调用它。

我们可以用一个代码示例来测试我们的响应吗?Gausie,我为pdf提供了一些javascript。让我知道这是否足够,或者如果你需要我在某处发布PDF,我也可以这样做。我可以在stackoverflow中发布一个附件吗?Gausie,我提供了可下载的示例代码和pdf格式,这很有帮助。见上文。谢谢,谢谢。这很有效。不确定为什么firefox不完全支持对象。
var emb = document.getElementsByTagName("EMBED")[0];