【发布时间】:2015-03-15 22:59:44
【问题描述】:
在我的 Win32 C++ 应用程序(没有 MFC、ATL 等)的对话框中嵌入了一个 Web 浏览器,我最初从包含一些 HTML 代码的字符串设置文档的内容。此 HTML 已正确呈现。当“文档完成”事件发生时,我操作 DOM,例如通过将文本节点附加到 BODY 元素。
问题在于,虽然在 BODY 元素的界面上调用 IHTMLElement::get_outerHTML 表明存在文本节点,但对话框中的浏览器内容似乎没有改变。
我尝试同时调用IWebBrowser2::Refresh 和::InvalidateRect/::UpdateWindow,但都没有帮助。
有什么想法吗?如果需要,我可以发布我的部分代码。
还有人知道吗
- 原则上是否需要在修改 DOM 后以某种方式触发刷新(或者应该是自动的)
- 当 HTML 文档从字符串而不是 URL 加载时,
IWebBrowser2::Refresh是否有意义
仍然希望得到这个问题的答案……有人吗?
【问题讨论】:
-
刷新应该是自动的。您是否在 STA 线程中工作,并且您是否正在发送 Windows 消息? stackoverflow.com/questions/2222365/what-is-a-message-pump
标签: c++ dom mshtml iwebbrowser2