是否可以刷新浏览器大小更改页面?我使用一些在页面上创建区域的样式,如果浏览器按比例缩小布局中断。
也许我可以用jQuery检测文档大小的变化?
答案 0 :(得分:24)
立即查看此内容的任何人的更新。 JQuery现在认为绑定一个已弃用的函数。
而且proximus的响应方式(至少在Opera / Chrome / Firefox中)它会不断调查大小,即使浏览器只是坐在那里。看来resize函数在命中location.reload()时会自动调用,导致它达到无限循环。这就是我在一起解决问题的方法。
jQuery(function($){
var windowWidth = $(window).width();
var windowHeight = $(window).height();
$(window).resize(function() {
if(windowWidth != $(window).width() || windowHeight != $(window).height()) {
location.reload();
return;
}
});
});
答案 1 :(得分:17)
这是一个纯粹的JS解决方案,因为我认为将jQuery用于所有内容是不公平的。
window.addEventListener('resize', function () {
"use strict";
window.location.reload();
});
缺点是它不能在早于9的IE“浏览器”中工作。
答案 2 :(得分:4)
如果您正在寻找jQuery解决方案,可以使用以下内容:
$(window).bind('resize', function() {
location.reload();
});
可能另外使用超时......
答案 3 :(得分:1)
$(window).resize( function() {
window.location.href = window.location.href;
});
这个对我有用!
答案 4 :(得分:1)
简单。这并不是每x秒发生一次事件就会触发多个事件。接受的答案会引发太多事件
window.addEventListener('resize'
for jQuery将 $(window).resize
替换为 {{1}}
答案 5 :(得分:1)
已经提到的解决方案适用于大多数情况。当用户开始滚动时,移动设备(如平板电脑或手机)上的 Safari 会稍微改变分辨率。这会导致页面无法使用,因为当用户开始滚动时站点会刷新。
为避免这种情况,请在 threshold
中设置 px
。如果浏览器在此 threshold
上方调整大小,页面将重新加载。 jQuery 解决方案可能如下所示:
var w = $(window).width();
var h = $(window).height();
var threshold = 100
$(window).resize(function(){
widthDiff = Math.abs($(window).width()-w);
heightDiff = Math.abs($(window).height()-h);
if (widthDiff < threshold && heightDiff < threshold) return;
w = $(window).width();
h = $(window).height();
$(window).resize(function(){
location.reload();
});
});
答案 6 :(得分:0)
您可以收听onresize事件:
答案 7 :(得分:0)
只需使用此代码
$(window).resize( function() {
window.location.href = window.location.href;
});
希望它有用
答案 8 :(得分:0)
如果有人拖动窗口来调整大小,则会出现问题 - 调整大小事件太多。
最好使用计时器来清理它:
$(window).on('resize', function () {
if (timeoutId) {
clearTimeout(timeoutId);
}
timeoutId = setTimeout(function () {
location.reload();
}, 500);
});