当元素溢出发生变化时,有没有办法让IE 10+触发事件?

时间:2013-11-27 09:50:36

标签: javascript internet-explorer javascript-events overflow internet-explorer-10

我想测试div是否溢出。以下代码适用于webkit和FF。

    var div = $("#myDivWithOverflow")[0];
    var OnOverflowChanged = function(){
        alert("OnOverflowChanged");
    }

    if (div.addEventListener) {
        // webkit
        div.addEventListener ('overflowchanged', OnOverflowChanged, false);
        // firefox
        div.addEventListener ('overflow', OnOverflowChanged, false);
    }

据我所知,IE10 +支持addEventListener方法,但不会对上述任何一个事件做出反应。

有没有办法在IE中实现这一目标?

更新:我创造了一个小提琴,说明了我想要实现的目标: http://jsfiddle.net/AyKarsi/sB36r/1/ 不幸的是,由于某些安全限制,小提琴在IE中根本不起作用

1 个答案:

答案 0 :(得分:1)

目前,仅在Webkit浏览器上支持overflowchanged

解决方法可以是检查突变事件(特别是DOMAttrModified)并检查溢出是否发生了变化。

div.addEventListener("DOMAttrModified", function() {
  // check overflow value
}, false);

这不会在屏幕调整大小时触发,因此它可能无法完全满足您的要求。但是你可以在某处找到解决方案。

在MDN上:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Events/Mutation_events
在Microsoft网站上:http://msdn.microsoft.com/en-us/library/ie/dn265032(v=vs.85).aspx