我有一个带有id ='title'的span标记,此值会在一段时间后发生变化。我希望在更新时使用此值更新页面标题。
e.g。 <span id='title'>Title</span>
- 这是当前的标题
经过一段时间后,它被另一个脚本更新为
<span id='title'>New title</span>
我想将页面标题更新为“新标题”,无论它有多少次更改。
现在我必须每隔1秒调用一次函数来更新页面标题。这会使页面标题闪烁。所以我想监视更改,每当值发生变化时,我希望该值成为页面标题。
答案 0 :(得分:0)
这个讨论似乎正在考虑同样的问题 - 而不是他们正在监视div的跨度。我知道你正在寻求用纯JavaScript来做这件事,但我认为线程仍然很好审查。
Jquery Event : Detect changes to the html/text of a div
答案 1 :(得分:0)
是。你可以通过
来实现它变异观察员
我根据您在评论中的jsfiddle链接回答了您的问题我使用了MutationObserver来实现您的目标。
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver ||
window.MozMutationObserver;
var target = document.querySelector('#demo');
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
console.log(mutation.type);
document.getElementById('status').innerHTML='changed';
}
});
});
observer.observe(target, {
attributes: true,
childList: true,
characterData: true
});
我把它分给了fiddle。
希望有所帮助