【问题标题】:Dynamic iframe loading and acccessing print method - same domain动态 iframe 加载和访问打印方法 - 相同域
【发布时间】:2013-09-28 12:04:06
【问题描述】:

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

这样我得到了 iframe 中显示的 PDF 文件,但是现在我想打印它。 我得到了

错误:访问属性“打印”的权限被拒绝

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

PDF 文件由 ASPX 页面生成,它返回 PDF 使用

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

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

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

是否存在 IIS 配置问题,即没有 http:// 的链接无法正常工作? 如何访问 iframe 的打印方法?跨域安全不应该在这里应用为同一个域,有什么想法吗?

【问题讨论】:

  • 注意:这发生在 Firefox 中,Chrome 浏览器让我访问 iframe 没有问题。

标签: c# javascript html asp.net web


【解决方案1】:

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

在 iframe 中:

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

在来自父母的电话中:

document.myFrameId.childPrint();

【讨论】:

  • 当PDF加载到iframe中时,GetPdf.aspx页面上的JS无法访问
  • @Savio 你没有js访问权限,因为那个页面只显示pdf文件?
  • 页面加载,创建 PDF 文件,然后将 pdf 文件写入浏览器。这会导致默认的 pdf 查看器在 iframe 中显示 pdf。
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多