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

时间:2008-09-18 19:11:59

标签: javascript pdf object embed

我有一个动态加载PDF文件的Web应用程序,可以在浏览器中查看。 目前,它使用“innerHTML”用PDF对象替换div。这很有效。

但是,有没有更好的方法来获取元素的ID并为Object / Embed设置“src”或“data”参数并让它立即加载新文档? 我希望Adobe Acrobat Reader的实例将保留在屏幕上,但新文档将加载到其中。

以下是该对象的JavaScript示例:

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

感谢任何见解。

5 个答案:

答案 0 :(得分:1)

我不确定这是否有效,因为我没有在我的项目中尝试过这个。

(看看你的JS,我相信你正在使用jQuery。如果没有,请纠正我)

使用对象填充divPDF后,您可以尝试以下代码:

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

同样,我不确定这是否适用于您的特定需求,但如果您将此代码附加到事件处理程序,则可以切换对象的数据。

你也可以将它包装在一个反复使用的函数中:

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

答案 1 :(得分:0)

如果PDF的处理程序是acrobat(它不一定是),它会公开这里记录的JS接口:

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

看看你是否可以在document.getElementById('objPDF')上调用openDoc(urlToPdf) - 即使这样可行,它只适用于Acrobat用于处理'application / pdf'

答案 2 :(得分:0)

@lark 略微纠正:

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

#指定objPDF是ID而不是元素名称。虽然我仍然不知道这是否有效。

@Tristan 看看jQuery Media plugin。它也提到了对PDF的支持,尽管我从未使用它。

答案 3 :(得分:0)

在外部窗口PDFN中使用外部PDF-Reader.EXE

打开PDF-Link

点击以下按钮:

<FORM action=""> 
    <INPUT type="button" value="PDF file" 
        onclick="window.open('http://www.Dku-betrieb.eu/Pdfn.html', 
        'PDFN', 'width=620, height=630')">
</FORM>

在外部窗口中打开此框架集Pdfn.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html lang="de">
    <meta http-equiv="refresh" content="12;url=http://www.dku-betrieb.eu/Pdfn1.html">
    <head>
        <title>Reader</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <frameset>
    <frame src="http://www.dku-betrieb.eu/File.pdf" frameborder=0 name="p1">
    </frameset>
</HTML>

在12秒内刷新下载PDF-Reader:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html lang="de">
    <head>
        <title>Reader</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <frameset >
    <frame src="http://www.dku-betrieb.eu/PDFReader.exe" frameborder=0 name="p2">
    </frameset>
</HTML>

在外部窗口PDFN中显示PDF文件。

答案 4 :(得分:0)

function pdfLoad(datasrc) {

          var x =  document.getElementById('objPDF');
          x.data = datasrc;

        }

这对我有用