
我发现a)我只能通过控件的HTMLdocument创建HTMLElement对象,并且b)一旦我从控件的HTMLdocument中删除了HTMLElement对象的“trunk”,它就“消失了”,即使我一直保持对root的强引用元件.
我怎样才能做到这一点?
附:如果他们允许我完成上述 *** 作,我愿意考虑其他浏览器控件(例如Gecko).
解决方法 这样做// On screen webbrowser controlwebbrowserControl.Navigate("about:blank");webbrowserControl.document.Write("<div ID=\"div1\">This will change</div>");var elementToReplace = webbrowserControl.document.GetElementByID("div1");var nodetoReplace = elementToReplace.DomElement as msHTML.IHTMLDOMNode;// In memory webbrowser control to load fragement into// It needs this base object as it is a COM controlvar webbrowserFragement = new Webbrowser();webbrowserFragement.Navigate("about:blank");webbrowserFragement.document.Write("<div ID=\"div1\">Hello World!</div>");var elementReplacement = webbrowserFragement.document.GetElementByID("div1");var nodeReplacement = elementReplacement.DomElement as msHTML.IHTMLDOMNode;// The magic happens here!nodetoReplace.replaceNode(nodeReplacement); 我怀疑这会改善性能,因为文本渲染器很快,如果你有一个隐藏div的大页面或其他对象的内存中有多个div,所消耗的内存仍然是相同的?
总结以上是内存溢出为你收集整理的构建HtmlElement对象树全部内容,希望文章能够帮你解决构建HtmlElement对象树所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)