【发布时间】:2010-05-27 10:14:07
【问题描述】:
我正在尝试为 HTML 元素创建一个监视方法,当属性更改时使用 __define[GS]etter__。当我设置值时它的反应很好,但是如果监听的属性是 innerHTML,它会以某种方式无法呈现给定的字符串。所以基本上,当我向 innerHTML 添加内容时,它不会显示。
我正在使用上一个问题中描述的 watch 方法: Watch for object properties changes in JavaScript
我可能只是不听 innerHTML 更改,但我也想知道 __defineSetter__ 是否会以某种方式阻止对设置值的原始处理。
谢谢!
【问题讨论】:
-
我正在使用 Chrome BTW。但经过一番研究,我发现它改用了defineProperty,但它仍然不呈现innerHTML。就好像它覆盖了原生的 setter 方法。
-
该实现不适用于 DOM 节点。它只是在设置监视属性时调用回调。但它实际上并没有设置 real 底层属性值(即,实际上会更改内部 html 的值)。
标签: javascript innerhtml watch