【发布时间】:2014-04-26 04:59:38
【问题描述】:
我正在维护一个旧版应用程序,它试图在回发事件期间动态加载一些 javascript。 javascript 有一行尝试打印包含正在加载 javascript 的页面的 iFrame。换句话说,窗口具有 iFrame 的层次结构(我知道这是一场噩梦)。我的代码在一个 asp.net 页面中,该页面加载在一个 id 为“main”的 iFrame 中。因此,以下代码在 Firefox 中运行没有任何问题:
parent.frames['main'].print();
但是,我似乎找不到可以让 IE 打印的魔法咒语。我试过在上一行之前添加这一行:
parent.frames['main'].focus();
但是,这没有任何效果。这是层次结构的简化表示:
<page>
<frameset>
<frame id='content'/>
<frameset>
<frame id='menu'/>
<frame id='main'/>
</frameset>
</frameset>
</page>
我在网上看到了很多关于此的内容,但是无法让它们中的任何一个在 IE、FF 上工作。
我使用的是 IE 10 和 FF 28
感谢您提供的任何建议。我在这上面浪费了太多时间。
【问题讨论】:
-
我尝试了 parent.window.frames['main'].print(),但没有成功(我尝试了它之前的“焦点”语句)。由于我知道完整的层次结构,我决定尝试 window.top.frames['main'].print() ,当然,它适用于 FF 但不适用于 IE,我也尝试了 window.top.frames['main'] .contentWindow.print(),没有运气。我无法列出我尝试过的所有变体,但我想我已经尝试了所有变体。啊。 (为清楚起见,'main' 嵌套在侧框架集中,但没有其他框架,因此 window.top.frames['main'] 可以工作,即使 main 向下嵌套了几层)。
标签: javascript asp.net iframe