A在我的Win32 C++應用程序(不包括MFC,ATL等)的對話框中嵌入了一個Web瀏覽器,我最初從包含一些HTML代碼的字符串中設置文檔的內容。該HTML呈現正確。當「文檔完成」事件發生時,我操縱DOM,例如通過將文本節點附加到BODY元素。DOM更改後爲什麼不刷新IWebBrowser2?
問題是,雖然在BODY元素的界面上調用IHTMLElement::get_outerHTML
指示文本節點存在,但瀏覽器內容在對話框中顯示爲未更改。
我已經嘗試呼叫IWebBrowser2::Refresh
和::InvalidateRect
/::UpdateWindow
,但都沒有幫助。
任何想法?如果需要,我可以發佈部分代碼。
而且,沒有人知道
- 是否在原則上,刷新需要修改DOM後以某種方式觸發(或它應該是自動)
IWebBrowser2::Refresh
- 是否有意義時,HTML文檔是從一個字符串加載,而不是一個URL
仍然希望對這個答案...任何人?
刷新應該是自動的。您是否在STA線程中工作,並且在抽取Windows消息? http://stackoverflow.com/questions/2222365/what-is-a-message-pump –