跨浏览器元素onresize(HTML / JS)

时间:2011-04-12 07:27:46

标签: html javascript-events

我知道IE supports the onresize event for any element,而FireFox支持它for the window object only

由于我需要任何现代浏览器的功能,我目前正在使用(相当快)间隔计时器,该计时器不断检查元素的clientWidth / clientHeight以模拟onresize。当然这是非常低效的,我想知道是否有跨浏览器方式来做到这一点。或者,也可以使用在FF / WebKit / IE中使用的不同方法,以便可以将计时器方法用作剩余浏览器的后备。

以纯JavaScript代替,而不是JQuery / Prototype等。

1 个答案:

答案 0 :(得分:0)

如果你不想使用jQuery,那么你必须检查浏览器发送到你的脚本的内容,所以:

if(!element.onresize != null) element.onresize += event;
if(!element.onresizeAnotherHandler != null) element.onresizeAnotherHandler += event;

我不知道这是否容易,但这是一个普遍的概念。

编辑:看起来Firefox没有事件处理程序。但有一个诀窍:

  • 如果要改变JS的宽度,只需创建一个函数更新

    function update(var nx, var ny){
        // do something with nx and ny
    }
    
  • 如果您使用CSS添加了调整大小句柄,请使用JavaScript

  • 如果你在你的CSS中使用80%的东西,那么处理window.onresize:

    function resize(){
        alert(document.getElementById("test").style.width);
    }
    

    window.onresize = resize;

看起来没有别的办法了。