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

Invoking javascript in iframe from parent page, IE issue

本文关键字:javascript IE 问题 中的 iframe 调用      更新时间:2024-07-01

这是这个问题的后续:从父页面调用iframe中的javascript

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

这是一个jsFiddle

问题是,iframe中的内容是动态创建的(因此没有跨域问题)。内容中有一个按钮,其onclick事件处理程序调用window.print()。这只打印iframe的内容(这很好,可以作为概念验证)。

此外,父页面上还有一个按钮,用于调用iframe发布的公共函数。函数是printContent,与iframe按钮的onclick事件处理程序一样,它也调用window.print()

这就是问题所在,当使用IE 8从父页面上的按钮进行打印时,也会打印父页面的内容。(Chrome不会出现这种情况。)

是否存在使IE 8仅打印iframe内容的修复程序?

有趣的是,通过公共函数返回window.document.title确实返回了iframe内容的title,即使在使用IE 8时也是如此。

小提琴展示了这个问题,并提供了更多细节。

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

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

如果函数在iframe中,您可以从任何地方打印它:

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