浏览器如何从innerHTML属性更新DOM?

时间:2015-01-22 18:56:29

标签: javascript html dom

我试图弄清楚当javascript更改DOM属性时浏览器如何执行Node.innerHTML更新作业。

鉴于代码:

> var obj=document.createElement("DIV");
> obj.innerHTML='<P><SPAN>A</SPAN></P><DIV>B</DIV>';
> obj.childNodes
[<p>​<span>​A​</span>​</p>​, <div>​B​</div>​]

对我来说这似乎很神奇,因为我认为innerHTML是属性,而不是函数,所以...

如何通知javascript字段中的更改以调用更新DOM树的函数?

当在javascript中更改变量时,是否有任何类型的侦听器用于调用函数,或者只有一些守护程序监视每个javascript行上的Node.innerHTML变量?

如果你想知道为什么重要,我会写一个DOMParser,这对我来说是一个问题。

使用给定的引用,我理解浏览器引擎可能提供Object.watch(gecko)或Object.observe(chrome)等方法。

但是有一种方法可以在nodejs中完成吗?

1 个答案:

答案 0 :(得分:2)

  

因为我认为innerHTML是属性,而不是函数

Javascript支持setter。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set

在此成为语言标准的一部分之前,本机对象(例如DOM节点)已经在内部使用了setter功能。