$(window).resize()和打印预览模式
$(window).resize() and Print Preview Mode
我有一段非常简单的代码,可以在调整大小后刷新窗口。
$(window).resize(function() {
location.reload();
});
当我尝试在Chrome中打开打印预览模式(Ctrl+p)时,它也会刷新它。有什么办法避免这种行为吗?
要确定打印操作,有两个事件:beforeprint
和afterprint
。使用这些事件,可以在onbeforeprint
中设置一些打印激活的标志,并在resize
处理程序中检查该标志。
window.onbeforeprint = function() {
print = true;
};
不幸的是,Chrome还不支持这些活动。作为Chrome matchMedia
中的变通方法,可以使用:
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
console.log('onbeforeprint equivalent');
} else {
console.log('onafterprint equivalent');
}
});
所以Chrome的解决方案可能是这样的:
var print = false;
var mediaQueryList = window.matchMedia('print');
mediaQueryList.addListener(function(mql) {
if (mql.matches) {
print = true;
}
});
$(window).resize(function(event) {
if (!print) {
location.reload();
}
});
在此之后,应在onafterprint
中重置print
标志以允许进一步调整窗口大小。
有关此方法的更多信息-http://tjvantoll.com/2012/06/15/detecting-print-requests-with-javascript/.
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- Javascript,访问一个主要对象模块模式中的每个对象
- JavaScript打印功能使日历停止工作
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 同位素库错误:未捕获错误无布局模式包装生产线8
- $(window).resize()和打印预览模式
- 如何在变量中存储多个模式参数并在 JavaScript 中打印该变量的值
- 自定义 CSS 媒体打印查询中的模式高度和宽度
- Javascript高效模式打印
- Div 中的文本/字体大小在 Firefox 的打印模式下与在“正常”模式下不同
- 打印模式窗口的全部内容
- 如何使用javascript打印此模式
- 有人能够使用CSS3在Chrome浏览器中成功地以横向模式打印吗
- 将HTML页面切换到媒体打印模式
- 使用横向模式打印到硬拷贝
- 检测是否处于打印模式或单击数据表导出工具中的打印按钮
- 打印模式,在javascript中
- 有人能解释一下为什么这个for循环打印出这个特定的模式吗?
- 显示弹出窗口时在模式弹出窗口中打印内容,但如果隐藏模式弹出窗口则打印正文