gpt4 book ai didi

Javascript/jQuery : delete iframe after contentWindow. 打印

转载 作者:行者123 更新时间:2023-11-30 08:10:01 24 4
gpt4 key购买 nike

我正在使用这段代码,它源于 herehere .

$('#my_button').on('click', function (e) {
var iframe = document.createElement('iframe');
iframe.id = "my_iframe";
iframe.onload = function() {
var doc = iframe.contentDocument || iframe.contentWindow.document;
doc.getElementsByTagName('body')[0].innerHTML = "<p>test123</p>";

iframe.contentWindow.focus();
iframe.contentWindow.print();

$("#my_iframe", top.document).remove();
};

document.getElementsByTagName('body')[0].appendChild(iframe);
});

没有 remove 行,它打印正常。但是,remove 行在它有机会执行 print() 之前删除了 iframe。我怎样才能设置某种回调,以便它打印出来,然后才删除 iframe?

谢谢。

最佳答案

我在搜索打印事件检测时找到了这个解决方案:

http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/

在这里,我按照 Stano 的要求添加了 JS 代码,但阅读整个链接的帖子也很重要,因为这种方法存在局限性。一般来说,该帖子是关于仅在 IE 中有效的 onafterprint 事件以及使该事件在其他浏览器中有效的解决方案。

(function() {
var beforePrint = function() {
console.log('Functionality to run before printing.');
};
var afterPrint = function() {
console.log('Functionality to run after printing');
};

if (window.matchMedia) {
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
beforePrint();
} else {
afterPrint();
}
});
}

window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
}());

关于Javascript/jQuery : delete iframe after contentWindow. 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com