如何使用JavaScript动态更改PDF对象/嵌入文件的" src"或者"数据"?

时间:2020-03-06 14:23:00  来源:igfitidea点击:

我有一个Web应用程序,该应用程序正在动态加载PDF文件以在浏览器中查看。
当前,它使用" innerHTML"将div替换为PDF对象。这行得通。

但是,是否有更好的方法来获取元素的ID并为"对象/嵌入"设置" src"或者"数据"参数,并使其立即加载新文档?
我希望Adobe Acrobat Reader实例会保留在屏幕上,但是新文档会加载到该实例中。

这是该对象的JavaScript示例:

document.getElementById(`divPDF`).innerHTML = `<OBJECT id='objPDF' DATA="'+strFilename+'" TYPE="application/pdf" TITLE="IMAGING" WIDTH="100%" HEIGHT="100%"></object>`;

任何见解均表示赞赏。

解决方案

我不确定这是否行得通,因为我没有在项目中尝试过。

(看着JS,我相信我们使用的是jQuery。如果没有,请更正我)

在用对象填充divPDF之后,我们可以尝试以下代码:

$("objPDF").attr({
    data: "dir/to/newPDF"
});

同样,我不确定这是否可以满足特定需求,但是如果将此代码添加到事件处理程序中,则可以切换出对象的数据。

我们还可以将其包装在一个函数中,以供反复使用:

function pdfLoad(dirToPDF) {
    $("objPDF").attr({
        data: dirToPDF
    });
}

如果PDF的处理程序是acrobat(不一定是acrobat),则它公开了一个JS接口,该接口在此处记录:

http://www.adobe.com/devnet/acrobat/pdfs/js_api_reference.pdf

看看是否可以在document.getElementById('objPDF')上调用openDoc(urlToPdf)-即使此方法有效,也仅在使用Acrobat处理'application / pdf'时有效

@云雀
稍作更正:

$('#objPDF').attr('data','dirToPDF');

指定objPDF是ID,而不是元素名称。虽然我仍然不知道这是否行得通。

@特里斯坦
看一下jQuery Media插件。它也提到了对PDF的支持,尽管我从未使用过它。