从父页面iframe中调用JavaScript中,IE浏览器问题(Invoking javascri

2019-09-29 10:57发布

这是一个跟进这个问题: 从父页面iframe中的JavaScript调用

我实现了由@Tomalak提供了答案。

这里是一个的jsfiddle

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

此外,还有是调用由出版公共职能父页面上的一个按钮iframe 。 该功能是printContent ,而像iframe按钮的onclick事件处理程序,它也呼吁window.print()

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

是否有一个修复,这使得IE 8只打印的内容iframe

有趣的是,返回window.document.title通过公共功能,并返回title中的iframe使用IE 8,即使内容。

小提琴演示该问题,并提供更多的细节。

Answer 1:

在IE浏览器,你需要将焦点设置到要打印的窗口。 这将打印IFRAME当函数在父页面:

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

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

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


文章来源: Invoking javascript in iframe from parent page, IE issue