DOM突变事件库?

DOM突变事件库?,第1张

概述我需要在将内容添加到网页时触发 *** 作.更新可能具有不同的性质(例如, AJAX,延迟脚本,用户 *** 作),并且不受我的控制. 我想使用DOM突变事件,但它们并非在所有浏览器中都可用.是否有针对此的跨浏览器库,提供后备计划? 此外,我有兴趣知道Internet Explorer 9是否支持这些DOM突变事件. 谢谢! 有两种方法可以做到这一点… 一,你可以拍摄dom(var snap = document 我需要在将内容添加到网页时触发 *** 作.更新可能具有不同的性质(例如,AJAX,延迟脚本,用户 *** 作),并且不受我的控制.

我想使用DOM突变事件,但它们并非在所有浏览器中都可用.是否有针对此的跨浏览器库,提供后备计划?

此外,我有兴趣知道Internet Explorer 9是否支持这些DOM突变事件.

谢谢!

解决方法 有两种方法可以做到这一点…

一,你可以拍摄dom(var snap = document.body)的快照,然后将其与100毫秒后的dom进行比较,然后再次重置捕捉到正文.我会让你在如何比较它们方面发挥创意:迭代似乎是常见的答案.它不漂亮.

另一个选项是在您创建的任何函数中使用特殊函数来添加/删除应用程序中的元素.此函数将遍历您添加(或销毁)的元素并查找匹配项.

/* Shim matchesSelector */if (!Element.prototype.matchesSelector) {    Element.prototype.matchesSelector =    Element.prototype.matches ||    Element.prototype.webkitMatchesSelector ||    Element.prototype.mozMatchesSelector ||    Element.prototype.msMatchesSelector ||    Element.prototype.oMatchesSelector;}function addingTodom(elm){    /* Whichever method you want to use to map selectors to functions */    var callbacks = array(['.class',fn-reference1],['#ID',fn-reference2],['div',fn-reference3]);    /* go through all the elements you're adding */    for (var i = 0; i<elm.length; ++i){        /* go through all the selectors you're matching against */        for (var k = 0; k<callbacks.length ++k){            if(elm[i].matchesSelector(callbacks[k][0])){                /* call function with element passed as parameter */                callbacks[k][1](elm[i]);            }        }    }}

这可能不完美,但它应该让你知道要去哪里.调用此函数(addingTodom)传递刚刚添加的元素作为参数.创建一个类似的函数来删除元素(或相同的函数,但调整一个单独的回调数组).

这是我用来测试一些想法的当前(大而混乱)代码的推断.我已经用这个垫片测试了匹配选择器ie7,它看起来效果很好!

我已经考虑过,但没有考虑过,元素具有某种参数的可能性,该参数可以被设置为在添加时被调用的函数,将其自身作为参数传递.但是,这可能是牵强附会的.

总结

以上是内存溢出为你收集整理的DOM突变事件库?全部内容,希望文章能够帮你解决DOM突变事件库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053693.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存