Javascript 获取窗口中第一个可见的iFrame并打印它
有点荒谬的情况。。。这实际上只适用于IE8及更低版本 无论如何,我有一个iFrame出现(我无法控制/创建ID),感谢TelerikJavascript 获取窗口中第一个可见的iFrame并打印它,javascript,jquery,iframe,telerik,radwindow,Javascript,Jquery,Iframe,Telerik,Radwindow,有点荒谬的情况。。。这实际上只适用于IE8及更低版本 无论如何,我有一个iFrame出现(我无法控制/创建ID),感谢Telerik // The only way I can grab it specifically would be: var iframe = document.frames ? document.frames[id] : document.getElementById(id); //
// 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;
但是因为我没有身份证,我不能用这个方法。。。
我尝试过几种不同的方法,但没有成功
// 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()
,即将此代码解释为点符号window.frames.2
,不起作用,返回为null或不是对象。在控制台中键入相同的点符号不起作用,只会给我“Expected;”(这没有意义)。javascript中的大多数旧集合都有一个名为项的方法*,请尝试以下方法:
window.frames.item(2).print();
(*)不必奇怪,类型的window.frames.item
将是'object'
您尝试过吗
document.getElementsByTagName('iframe')[0]
我在IE8控制台上对此进行了测试,它可以工作(但在您的更新中可能仍然存在问题)
至于你关于打印第一个可见iframe的问题的另一部分,你可能想看看scrollX和scrollY以及offsetTop和offsetLeft,不?注意,这在IE中有效,但在2018年不适用于Chrome。你必须用括号来表示Chrome。