我正在使用默认打印功能进行打印,但是打印功能完成后我无法单击其他选项卡。打印窗口在同一页打开
function printReport() {
var divElements = $('.nicEdit-main').html();
var oldPage = document.body.innerHTML;
document.body.innerHTML = "<html><head><title></title></head><body>" + divElements + "</body>";
window.print();
document.body.innerHTML = oldPage;
}
最佳答案
不幸的是,您刚刚替换了整个页面。 innerHTML
仅返回字符串形式的 HTML 减去处理程序和附加到元素的任何数据。设置 innerHTML
从该字符串重新创建 DOM,没有最初附加的处理程序。您刚刚“有效地”使页面瘫痪!
我建议:
困难的方法是继续你正在做的事情,但是将所有处理程序委托(delegate)给
document
就像live
会做的那样,这样他们就不会不会被删除。困难,可能,但不可扩展、不可维护或最优。或者您可以创建一个隐藏的
iframe
并将要打印的内容放在那里。然后从该 iframewindow
调用print
。这样,您就不会丢失当前页面。其他人会创建一个新窗口,将内容放在那里,运行打印并在之后立即关闭它。与 iframe 的工作方式相同,但您不会想要像某些弹出式广告一样立即打开和关闭的令人毛骨悚然的窗口。
关于javascript - 打印功能后无法单击其他选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477778/