我知道IE supports the onresize
event for any element,而FireFox支持它for the window
object only。
由于我需要任何现代浏览器的功能,我目前正在使用(相当快)间隔计时器,该计时器不断检查元素的clientWidth / clientHeight以模拟onresize。当然这是非常低效的,我想知道是否有跨浏览器方式来做到这一点。或者,也可以使用在FF / WebKit / IE中使用的不同方法,以便可以将计时器方法用作剩余浏览器的后备。
以纯JavaScript代替,而不是JQuery / Prototype等。
答案 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;
看起来没有别的办法了。