为什么在DOM更改后IWebBrowser2不刷新?

Dab*_*ler 11 c++ dom mshtml iwebbrowser2

A有一个Web浏览器嵌入在我的Win32 C++应用程序的对话框中(没有MFC,ATL等),我最初从包含一些HTML代码的字符串设置文档的内容.此HTML正确呈现.当"文档完成"事件发生时,我操纵DOM,例如通过将文本节点附加到BODY元素.

问题是虽然调用IHTMLElement::get_outerHTMLBODY元素的界面表明文本节点存在,但浏览器内容在对话框中显示不变.

我试过调用两个IWebBrowser2::Refresh::InvalidateRect/ ::UpdateWindow,但都没有帮助.

有任何想法吗?如果需要,我可以发布部分代码.

还有,有谁知道

  • 原则上,在修改DOM之后是否需要以某种方式触发刷新(或者它应该是自动的)
  • IWebBrowser2::RefreshHTML文档是从字符串加载而不是URL加载时是否有意义

仍希望得到这个答案......任何人?

Dab*_*ler -2

我发现了问题 - 这是我的代码中的一个错误。在重新加载页面的代码中,有一个对 IWebBrowser2::Refresh 的非常模糊的调用,从而将我的动态更改恢复到 DOM。