Firefox 在 window.print() 之后没有重定向;
Firefox isn't redirecting after window.print();
我有一个带有按钮的网页,我想打印该页面然后重定向到另一个页面。但是,使用 Firefox 66,如果我完成打印,它不会重定向。如果我取消打印,它会重定向。
代码如下:
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.print();
window.location='mypage.php';
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
如果我删除 window.print();
行,它工作正常,但在实际打印时,它没有。也适用于 Chrome、Edge,甚至 IE11,但不适用于 Firefox。
我是不是漏掉了什么?
更新:不仅仅是我的电脑。其他人的电脑在 Firefox 上做同样的事情...
首先,您的代码应该可以工作,但更好的(方式)版本是:
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onafterprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
在您创建的函数中,打印完成后应该触发。
此事件 (window.onafterprint) 受所有浏览器支持,除了 safari(编辑:是的,from MDN)
现在,出于某种原因,这段代码不适用于 Firefox 66.0.3 64 位(在我的例子中),但可以完美地用于 IE11 和 Chrome 73。
好吧,如果您在询问时取消打印,实际上 有效,但如果您实际打印则不行。
解决方法是使用另一个事件 onbeforeprint
,它会在打印前更改页面(想法是在打印前删除广告等内容,然后使用 onafterprint 恢复页面)。
当我尝试时,它似乎打印了第一页而不是第二页,所以这个事件也被打破了。
这个方法好像行得通。
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onbeforeprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
我有一个带有按钮的网页,我想打印该页面然后重定向到另一个页面。但是,使用 Firefox 66,如果我完成打印,它不会重定向。如果我取消打印,它会重定向。
代码如下:
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.print();
window.location='mypage.php';
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
如果我删除 window.print();
行,它工作正常,但在实际打印时,它没有。也适用于 Chrome、Edge,甚至 IE11,但不适用于 Firefox。
我是不是漏掉了什么?
更新:不仅仅是我的电脑。其他人的电脑在 Firefox 上做同样的事情...
首先,您的代码应该可以工作,但更好的(方式)版本是:
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onafterprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>
在您创建的函数中,打印完成后应该触发。 此事件 (window.onafterprint) 受所有浏览器支持,除了 safari(编辑:是的,from MDN)
现在,出于某种原因,这段代码不适用于 Firefox 66.0.3 64 位(在我的例子中),但可以完美地用于 IE11 和 Chrome 73。
好吧,如果您在询问时取消打印,实际上 有效,但如果您实际打印则不行。
解决方法是使用另一个事件 onbeforeprint
,它会在打印前更改页面(想法是在打印前删除广告等内容,然后使用 onafterprint 恢复页面)。
当我尝试时,它似乎打印了第一页而不是第二页,所以这个事件也被打破了。
这个方法好像行得通。
<SCRIPT LANGUAGE="JavaScript">
function myprint() {
window.onbeforeprint = function(event) {
window.location.href = 'index.php'
};
window.print();
}
</script>
<a><button onClick="myprint(); return false;">Print ticket</button></a>