在窗口中获取第一个可见iFrame并打印它



这是一种荒谬的情况。。。这实际上只适用于IE8及更低版本。

无论如何,我有一个iFrame出现了(我无法控制/创建ID),感谢Telerik!

// The only way I can grab it specifically would be:
var iframe = document.frames ? document.frames[id] : document.getElementById(id);
// ^ you grab by ID in IE
var ifWin = iframe.contentWindow || iframe;

但由于我没有ID,我不能使用这种方法。。。我尝试了几种不同的方法,但都没有成功。

// tried either window. / or document.
document.frames.print();
window.frames.print();
document.frames[0].print();

我基本上只想,抓取第一个iFrame->并打印它

旁注window.print()适用于IE8&降低对于IE,它只打印外部/父窗口内容,而不是当前关注的iFrame。

有什么想法吗?


更新:因此,在IE控制台中执行window.frames[2].print()以某种方式工作(并获取正确的帧)。当我试图将此代码放入Javascript中时,我得到了完全相同的东西:window.frames[2].print(),IE将此代码解释为点符号window.frames.2,但不起作用,返回为null或不是对象。在控制台中键入相同的点符号是不起作用的,只会给我"Expected;"(这毫无意义)。

你试过吗

document.getElementsByTagName('iframe')[0]

我在IE8控制台中测试了这一点,它可以工作(但在您的更新中可能仍然存在问题)。

至于你关于打印第一个可见iframe的问题的另一部分,你可能想看看scrollX和scrollY以及offsetTop和offsetLeft,不是吗?

javascript中的大多数旧集合都有一个名为item方法*,请尝试以下操作:

window.frames.item(2).print();

(*)不要怀疑,typeof window.frames.item将是'object'

最新更新