所以我得到了这个网站,在那里我用javascript动态地创建元素。用户创建完他想要的元素后,他可以单击打印按钮。这将触发以下 javascript 函数:
function printContent() {
var restore = document.body.innerHTML;
var printcontent = document.getElementById('h').innerHTML;
document.body.innerHTML = printcontent;
window.print();
document.body.innerHTML = restore;
}
目前为止,一切都好。但是,当有人取消打印时,它会在视觉上返回到以前的状态,但脚本不会加载。我通过在外部js文档中发出警报来测试这一点。从打印命令返回时,永远不会触发警报。我知道问题是变量还原。它只返回一个字符串。
我的问题:取消打印命令时,如何让我的 js 文件再次重新加载,同时保持文档正文处于还原状态。
提前谢谢。
在 Firefox 和 IE 中实现了一个window.onafterprint
事件,虽然它不是跨浏览器的 developer.mozilla.org
编辑:我发现这应该是跨浏览器兼容的:
(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;
}());