禁用浏览器的窗口大小调整禁用浏览器的窗口大小调整(Disable Browser Window Re

2019-05-14 04:26发布

对于初学者来说,我还进行用户弹出窗口或类似的东西没有险恶用心。 我只是想阻止用户缩放网页的浏览器窗口,他们已经导航(意思是我没有访问/不想使用window.open())。 我一直在研究这个相当长的一段时间,似乎无法找到一个明确的答案。

我觉得我是在轨道沿着线的东西:

 $(window).resize(function() {
     var wWidth = window.width,
     wHeight = window.height;
     window.resizeBy(wWidth, wHeight);
 });

......无济于事。 我想象这是可能的。 是吗? 如果是的话,我肯定会感谢帮助。

谢谢

Answer 1:

你可以首先确定一个明确的大小。

var size = [window.width,window.height];  //public variable

然后这样做:

$(window).resize(function(){
    window.resizeTo(size[0],size[1]);
});

演示: http://jsfiddle.net/DerekL/xeway917/


问:这会不会引起调整的无限循环? - user1147171

有趣的问题。 这不会引起调整的无限循环。 在W3C规范 ,各国resize事件只能当一个文档视图已经调整分派。 当resizeTo功能尝试执行第二次,该窗口将拥有完全相同的尺寸,因为它刚刚成立,因此由于尺寸没有改变,浏览器将不会触发resize事件。



Answer 2:

我需要做今日(由一个Chrome扩展开了一个面板),但我需要允许用户改变窗口的高度,但阻止他们改变窗口宽度

@德里克的解决方案让我几乎没有,但我不得不调整它允许高度的变化正因为如此,无限循环大小调整是可能的,所以我需要防止这一点。 这是我的版本,德雷克的回答是合作得非常好,我的:

var couponWindow = {
  width: $(window).width(),
  height: $(window).height(),
  resizing: false
};
var $w=$(window);
$w.resize(function() {
  if ($w.width() != couponWindow.width && !couponWindow.resizing) {
    couponWindow.resizing = true;
    window.resizeTo(couponWindow.width, $w.height());
  }
  couponWindow.resizing = false;
});


文章来源: Disable Browser Window Resize