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