如何在 javascript 中取消打印功能后重新加载脚本



所以我得到了这个网站,在那里我用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;
}());

最新更新