为什么不推荐使用 DOMSubtreeModified事件以及我们应该使用什么?
我刚安装IE10在我的Windows 7,而且我发现,即使我很高兴,从AJAX请求个XML现在可以兼容DOM文档,就像一个相当基本的功能document.evaluate
是仍然不支持.
更糟糕的是,由于这些个XML是不是定制的微软IXMLDocument
对象,节点不支持selectNodes
和selectSingleNode
了.最后,似乎IE10不支持DOM Level 3 XPath或MSXML Xpath.
说真的,微软?有什么我想念的吗?
当然,我可以使用querySelector
和querySelectorAll
,但我不想失去相当多的向后兼容性.
否则,仍然可以使用此行请求MSXML文档
try {xhr.responseType = "msxml-document";} catch(e) {}
Run Code Online (Sandbox Code Playgroud)
如规定在这里,但我认为这将是很好对付,最后,在IE标准DOM文档了.
那么,有没有办法在IE10中使用带有标准DOM文档的XPath?
更新2013年6月26日 IE11尚未稳定,但仍然不支持document.evaluate
.如果它不支持它在稳定的版本,我怀疑它会永远支持它.毋庸置疑,这是荒谬的.
我知道你可以在DOM节点中使用querySelector
/ All
,但它在IE9及更低版本中不受支持,这仍然是非常常用的,无论如何XPath比选择器更强大.
幸运的是(如果可以这么说),你仍然可以设置xhr.responseType = "msxml-document"
.有那么一刻,我担心你再也不能那样做了......
更新23/11/2013 IE11现在稳定,但遗憾的是,它不支持document.evaluate
.随着重量级XML文档在Web应用程序中越来越少地使用JSON或其他光表示法格式,这变得不那么成问题了,但仍然如此.
设置responseType
属性仍然提供遗留的XML文档,所以我猜没有丢失.不过,我不知道IE12是否会成立.
更新15/8/2015现在听起来很荒谬,但Edge现在支持document.evaluate
.就在(几乎)一切都切换到JSON进行数据交换时.嗯,迟到总比没有好,我想.
由于w3c将DOM变异标记为已弃用(请参阅http://www.w3.org/TR/DOM-Level-3-Events/#events-mutationevents),是否有(快速)替代方法来检测属性修改在DOM?
我需要一种方法来监听删除或添加节点的子节点时的更改.我制作了一个自动滚动插件,可以在添加新项目时将元素滚动到底部.我正在听的事件是DOMNodeInserted
和DOMNodeRemoved
.
我正在寻找DOMNodeInserted
和DOMNodeRemoved
我的polyfill .环顾四周,我无法找到任何已经存在的东西.所有浏览器都不支持该事件,目前已弃用.我有一个简单的(很可能是天真的)polyfill我写得很快,但我怀疑它是否有效(好).
我知道这些事件已被弃用,但有没有更好的方法来监听元素子项的变化?
(function() {
var works = false;
var $test = document.createElement("div");
var $testchild = document.createElement("a");
$test.addEventListener("DOMNodeInserted", function() {
works = true;
}, false);
$test.appendChild($testchild);
if(!works) {
var nodeproto = Node.prototype;
var nativeAppend = nodeproto.appendChild;
var nativeRemove = nodeproto.removeChild;
nodeproto.appendChild = function() {
nativeAppend.apply(this, arguments);
this.fireEvent("DOMNodeInserted");
};
nodeproto.removeChild = function() {
nativeRemove.apply(this, arguments);
this.fireEvent("DOMNodeRemoved");
};
}
})();
Run Code Online (Sandbox Code Playgroud) dom3 ×4
dom ×2
javascript ×2
deprecated ×1
dom-events ×1
events ×1
html5 ×1
msxml ×1
xmldom ×1
xpath ×1