gpt4 book ai didi

javascript - 覆盖 javascript window.print 的内容

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:41:35 25 4
gpt4 key购买 nike

我想覆盖 window.print 的行为,比如如果 dom 包含一个表我不想打印某些行。

我引用了下面关于如何破解 javacript 事件的堆栈溢出答案,但不确定如何更新打印的 dom 内容 JavaScript: Overriding alert()

谁能对此有所启发。

谢谢。

最佳答案

您可以通过覆盖 window.print 函数来运行您自己的特殊 JavaScript。但是,这与从导航栏中单击打印的流程不同。

window.print 是应用程序启动的打印流程。

var oldPrintFunction = window.print;

window.print = function () {
console.log('Gonna do some special stuff');
oldPrintFunction();
};

使用用户驱动的打印事件和编程的打印事件:

我不得不去看看这个,因为我很久以前写过一些类似的东西,而且我似乎找到了它。此代码监视媒体更改以转到 print

function beforePrint() {
console.log('Do something special before print');
}

function afterPrint() {
console.log('Do something after print');
}

if (window.matchMedia) {
window.matchMedia('print').addListener(function (mql) {
if (mql.matches) {
beforePrint();
}
else {
afterPrint();
}
});
}
// For IE, does not attach in browsers that do not support these events
window.addEventListener('beforeprint', beforePrint, false);
window.addEventListener('afterprint', afterPrint, false);

这将运行调用 window.print()beforePrint 函数中的任何内容,或者用户选择使用浏览器流程(command+p,文件->打印)等

请注意: afterprint 在 Chrome 中有一个错误,请参阅我的 StackOverflow question here

关于javascript - 覆盖 javascript window.print 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40598128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com