使用javascript

时间:2017-04-03 10:42:51

标签: javascript c# asp.net

我正在尝试使用javascript在客户端打印pdf文件。我的javascript代码如下

function doit() {
    var win = document.getElementById("pdf");
    var frm = document.getElementById("pdf").contentWindow;
    frm.print();
    win.print();
}          

问题是frm总是为null而win没有print

功能

我的pdf元素如下

<iframe id="pdf" name="pdf" src="C:\My_P.pdf"></iframe>

我从c#调用函数,如下所示

ClientScript.RegisterStartupScript(this.GetType(), "Print", "doit();", true);

真的很挣扎。请帮忙

2 个答案:

答案 0 :(得分:1)

您的问题的解决方案是在加载Iframe后调用print函数,您可能不需要使用RegisterStartupScript

从服务器调用它
<iframe id="pdf" name="pdf" src="C:\My_P.pdf"
     onload="doit();"></iframe>

另一个问题似乎是src路径C:\My_P.pdf,我的框架期待一个url来显示内容。参考Iframe

要缓解此问题,请创建一个目录,例如您的asp.net项目中的MyResource并将您的pdf复制到此目录并更改src =&#34; /MyResource/My_P.pdf"。您的pdf应该是浏览器可访问的,然后只有Iframe可以加载它。

答案 1 :(得分:0)

你受到same origin policy的阻碍吗?

过去我曾用过:

window.frames["pdf"].focus();
window.frames["pdf"].print();