Javascript $(窗口).resize()和打印预览模式

Javascript $(窗口).resize()和打印预览模式,javascript,jquery,google-chrome,browser,Javascript,Jquery,Google Chrome,Browser,我有一段非常简单的代码,可以在调整窗口大小后刷新窗口 $(window).resize(function() { location.reload(); }); 当我尝试在Chrome中打开打印预览模式(Ctrl+p)时,它也会刷新。有没有办法避免这种行为?要确定打印操作,有两个事件:打印前和打印后。使用这些事件,可以在onbeforeprint中设置一些已激活打印的标志,并在resize处理程序中检查该标志 window.onbeforeprint = function() {

我有一段非常简单的代码,可以在调整窗口大小后刷新窗口

$(window).resize(function() {
    location.reload();
});

当我尝试在Chrome中打开打印预览模式(Ctrl+p)时,它也会刷新。有没有办法避免这种行为?

要确定打印操作,有两个事件:
打印前
打印后
。使用这些事件,可以在
onbeforeprint
中设置一些已激活打印的标志,并在
resize
处理程序中检查该标志

window.onbeforeprint = function() {
    print = true;
};
不幸的是,铬。作为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();
  }
});
在此之后,
print
标记应在
onafterprint
中重置,以允许进一步调整窗口大小


有关此方法的更多信息-。

欢迎使用堆栈溢出!感谢您正确编写的文本和正确缩进的代码。不过有一个小提示,你不需要在这里说“谢谢”,我们都愿意回答。这甚至被认为是问题中的噪音。祝你玩得开心!出于兴趣,为什么需要在调整页面大小后重新加载?是的,这很有效。非常感谢你的解释。