如何使用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的支持,尽管我从未使用过它。