从父页面调用iframe中的javascript,IE问题

时间:2012-08-02 12:23:35

标签: javascript internet-explorer dom

这是对此问题的跟进:Invoking javascript in iframe from parent page

我已经实现了@Tomalak提供的答案。

这是jsFiddle

问题在于,iframe中的内容是动态创建的(因此没有跨域问题)。在内容中是一个按钮,其onclick事件处理程序调用{​​{1}}。这仅打印window.print()的内容(这是好的,并作为概念证明)。

此外,父页面上有一个按钮,用于调用iframe发布的公共函数。该函数为iframe,与printContent按钮的iframe事件处理程序类似,它也会调用onclick

这是问题,当使用IE 8从父页面上的按钮打印时,也会打印父页面的内容。 (这不会发生在Chrome上。)

是否有修复程序使IE 8仅打印window.print()的内容?

有趣的是,通过公共函数返回iframe,即使使用IE 8,也会返回window.document.title内容的title

小提琴演示了问题并提供了更多细节。

1 个答案:

答案 0 :(得分:2)

在IE中,您需要将焦点设置到要打印的窗口。当函数在父页面中时,这将打印iframe:

function printContent(){
    var el = document.getElementById('myFrame');
    el.contentWindow.focus();
    el.contentWindow.print();
    return;
}

如果功能在iframe中,您可以从任何地方打印:

function printContent(){
    window.focus();
    window.print();
    return;
}