在Firefox、WebKit和Internet Explorer中插入窗口调整大小事件的正确(现代)方法是什么?

你能同时打开/关闭两个滚动条吗?


当前回答

使用jQuery 1.9.1我刚刚发现,虽然技术上相同)*,这在IE10中不工作(但在Firefox中):

// did not work in IE10
$(function() {
    $(window).resize(CmsContent.adjustSize);
});

虽然这在两种浏览器中都有效:

// did work in IE10
$(function() {
    $(window).bind('resize', function() {
        CmsContent.adjustSize();
    };
});

编辑: )*实际上在技术上并不相同,正如WraithKenny和Henry Blyth在评论中所指出和解释的那样。

其他回答

我认为jQuery插件“jQuery resize event”是最好的解决方案,因为它负责调节事件,使它在所有浏览器上都能正常工作。这与Andrews的答案相似,但更好,因为你可以将resize事件与特定的元素/选择器以及整个窗口挂钩。它为编写干净的代码提供了新的可能性。

这个插件可以在这里找到

如果您添加了很多侦听器,则会出现性能问题,但对于大多数使用情况来说,这是完美的。

既然你是开放的jQuery,这个插件似乎做的把戏。

下面是使用resize事件的非jquery方法:

window.addEventListener('resize', function(event){
  // do stuff here
});

它适用于所有现代浏览器。它不会为你扼杀任何东西。这里有一个实际应用的例子。

$(window).bind('resize', function () { 

    alert('resize');

});

很抱歉提出了一个旧线程,但如果有人不想使用jQuery,你可以使用这个:

function foo(){....};
window.onresize=foo;