动态iframe加载和访问打印方法 - 相同的域

时间:2013-09-28 12:04:07

标签: c# javascript html asp.net web

我有一个iframe元素放在页面上,当用户点击特定按钮时 - iframe(放在UpdatePanel中)获取一个用我的url填充的SRC属性,并刷新更新面板。

这样我就可以得到iframe中显示的PDF文件,但是现在我要打印它。 我正在接受

  

错误:访问属性'print'的权限被拒绝

$('#ifOrderPrint').get(0).contentWindow.print();

PDF文件由ASPX页面生成,该页面使用

返回PDF

Respone.WriteBnary,此网址作为SRC属性传递给iframe。 mypage.com/GetPdf.aspx?id=100

主页面和iframe src都位于同一个域中。

我发现,当我加载src属性时,该链接会以http://为前缀,并在调用时导致上述错误。
如果我在firebug中编辑SRC标记,并删除前缀,我会收到XML Parse错误,但我能够访问print method (!)

IIS配置的问题是,没有http://的链接不起作用? 如何访问iframe的打印方法?跨域安全不应该在这里作为同一个域,任何想法吗?

1 个答案:

答案 0 :(得分:0)

您应该在iframe页面中声明一个函数,然后从iframe页面上的父窗口调用window.print()函数

iframe中的

function childPrint()
{
   window.print();
}

来自父母的电话:

document.myFrameId.childPrint();