Javascript 如何仅在用户打印时重定向到另一页
我一直在试图找到一种方法,如果用户实际打印,可以重定向到另一个页面。也就是说,我只想在他们从打印时打开的选项卡中单击打印按钮时重定向 我不想要这种方法Javascript 如何仅在用户打印时重定向到另一页,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我一直在试图找到一种方法,如果用户实际打印,可以重定向到另一个页面。也就是说,我只想在他们从打印时打开的选项卡中单击打印按钮时重定向 我不想要这种方法 function myFunction() { window.print(); window.location='http://newurl.com/'; } 节录如下: 结合各种方法 如果将这两种方法结合起来,您可以在IE 5+、Firefox 6+、Chrome 9+和Safari 5.1+中检测打印请求(不幸的是,Ope
function myFunction() {
window.print();
window.location='http://newurl.com/';
}
节录如下:
结合各种方法
如果将这两种方法结合起来,您可以在IE 5+、Firefox 6+、Chrome 9+和Safari 5.1+中检测打印请求(不幸的是,Opera不支持这两种方法)
请注意,您的事件处理程序可能必须处理这样一个事实:在Chrome中,每个打印请求都会调用它们两次
摘录结束。您完全无法控制“打印时打开的选项卡”,这是真的,但前后都有事件发生。这些处理程序将在预览窗口关闭时(以及其他时间)运行,而不管文档是否实际打印。基于Chrome的(mediaquery)将仅在实际打印时运行,除非Chrome切换到打印媒体进行预览。。。未测试。在Chrome 68.0.3440.75中,
窗口.匹配媒体(“打印”)
的打印前和打印后都会在预览窗口出现之前触发,如果选择了其他打印机,则会再次触发。预览窗口关闭后,窗口.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;
}());