1

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

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

这是一个jsFiddle

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

此外,父页面上还有一个按钮,它调用由iframe. 该函数是printContent,并且与iframe按钮的onclick事件处理程序一样,它也调用window.print().

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

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

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

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

4

1 回答 1

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;
}
于 2012-08-02T15:00:45.427 回答