1

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

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

这是该对象的 JavaScript 示例:

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

任何见解都值得赞赏。

4

5 回答 5

1

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

(看你的JS,相信你用的是jQuery,如果不是,请指正)

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

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

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

您还可以将其包装在一个函数中以反复使用:

function pdfLoad(dirToPDF) {
    $("objPDF").attr({
        data: dirToPDF
    });
}
于 2008-09-18T19:59:53.163 回答
0

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

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

看看您是否可以在 document.getElementById('objPDF') 上调用 openDoc(urlToPdf) ——即使这样有效,它也仅在使用 Acrobat 处理“应用程序/pdf”时才有效

于 2008-09-18T20:13:25.830 回答
0

@lark 稍作修正:

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

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

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

于 2008-09-18T21:42:59.437 回答
0

在外部窗口中打开 PDF 链接 PDFN 与外部PDF-Reader.EXE

单击以下按钮:

<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 阅读器的下载:

<!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 文件。

于 2012-07-08T17:57:35.597 回答
0
function pdfLoad(datasrc) {

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

        }

这对我有用

于 2017-05-12T13:15:30.353 回答