P粉3065239692023-08-18 12:19:00
好的,我有一个答案。我应该更加了解,因为我刚刚完成了一个类似主题的教学。
代码是有效的,但是它运行得太早了。我需要等待文档加载完成。
这是一个可行的版本:
var iframe = document.createElement('iframe'); var div = document.querySelector('div#sidebar'); var content = div.innerHTML; iframe.srcdoc = `<!DOCTYPE html><html><head></head><body>${content}</body></html>`; document.body.append(iframe); // 等待iframe加载完成: iframe.onload = () => { iframe.contentWindow.print(); iframe.contentWindow.addEventListener('afterprint', event => { iframe.remove(); }); };