如何在v8中更改DOM元素的值

如何在v8中更改DOM元素的值,dom,v8,Dom,V8,我试图直接在object.cc文件中的方法SetPropertyForResult中更改heapObject的_nodeValue。(将值替换为加密值)。 更改后,我检查_noveValue,我看到更改应用于对象。但令人惊讶的是,当它被赋给变量时,我看到了旧值 v8中是否有对象的阴影?或者_nodeValue不是我必须改变的地方?或SetPropertyForResult不是正确的位置。也许我得去ic.cc的方法商店 感谢您的帮助如果您正在修改Chromium,为什么不在DOM对象的Object

我试图直接在object.cc文件中的方法SetPropertyForResult中更改heapObject的_nodeValue。(将值替换为加密值)。 更改后,我检查_noveValue,我看到更改应用于对象。但令人惊讶的是,当它被赋给变量时,我看到了旧值

v8中是否有对象的阴影?或者_nodeValue不是我必须改变的地方?或SetPropertyForResult不是正确的位置。也许我得去ic.cc的方法商店


感谢您的帮助

如果您正在修改Chromium,为什么不在DOM对象的ObjectTemplates中添加拦截器呢?通过这种方式,您可以观察对任何命名属性的访问,还可以分别设置读写访问的处理程序。我希望这样就不会有像你观察到的令人惊讶的事情。谢谢你的回复。您是对的,我们可以在发生DOM和绑定的浏览器中实现这一点。然而,在我们的设计中,我们试图最小化受信任的代码(我们只想信任v8,而不是浏览器的其他组件,包括解析器、DOM等等)。我们可以在v8想要连接到DOM的地方进行,但是在v8内部。更准确地说,我们在GetPropertyWithCallBack和SetPropertyWithCallBack中实现了这一点,然后就没有问题了。