0
我有一堆节点将包含标记在一个不可预知的结构。我希望能够观察这些节点,并查看任何子节点或其子节点的html是否会发生变化,无论它有多轻微。如果他们这样做,那么我想发起一个事件。我可以使用dojo检测节点标记文本中的更改吗?
我可以通过dojo做到吗?我使用的是最新的1.10。
谢谢。
我有一堆节点将包含标记在一个不可预知的结构。我希望能够观察这些节点,并查看任何子节点或其子节点的html是否会发生变化,无论它有多轻微。如果他们这样做,那么我想发起一个事件。我可以使用dojo检测节点标记文本中的更改吗?
我可以通过dojo做到吗?我使用的是最新的1.10。
谢谢。
这听起来像你正在寻找DOM突变。据我所知,dojo不提供这个API,但它们很容易设置。问题是不同的浏览器有不同的方式来做到这一点。
var observeNode = document.getElementById('observeMe');
// Check for vendor-specific versions of MutationObserver.
MutationObserver = (function() {
var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
for (var i=0, il=prefixes.length; i<il; i++) {
if (prefixes[i] + 'MutationObserver' in window) {
return window[prefixes[i] + 'MutationObserver'];
}
}
}());
// Sniff for MutationObserver support
if (MutationObserver) {
var observer = new MutationObserver(function(mutations) {
alert('Something changed!');
});
observer.observe(observeNode, {attributes: true, childList: true, characterData: true});
} else {
// Fall back to mutation events
if (observeNode.addEventListener) {
observeNode.addEventListener('DOMSubtreeModified', function() {
alert('Something changed!');
});
}
// IE8 and below has its own little weird thing
else {
observeNode.onpropertychange = function() {
alert('Something Changed!');
}
}
}
这可能就足够了。我希望dojo能够做到这一点,这样我就可以在晚上睡得很熟悉,知道别人正在担心它在每个浏览器上的工作方式。但是,如果它最终失败,这不会是一个大问题 – 2014-12-08 01:44:40
你可以使用dojox/mvc这将允许你将dom绑定到json。该模型通常会改变元素的焦点丢失。 – tik27 2014-12-06 23:45:01