当用C++编写针对浏览器的DOM时,每个引擎都有一组不同的接口,IE有基于COM的[MSHTML](http://msdn.microsoft.com/en-us/library/aa752279 (VS.85) .aspx ),Mozilla有基于XPCOM的Gecko DOM等.
是否有有一个共同的API 适配器的主流浏览器(和版本)?
作为澄清,有问题的应用程序是一个用C++编写的桌面应用程序,它与浏览器交互,目前我们有单独的代码库来支持IE和Mozilla,我正在尝试减少逻辑重复,并允许用更少的工作量添加新的浏览器.
一个具体的例子是获取HTML元素的innerHTML属性.
// Firefox
nsAutoString html;
nsCOMPtr<nsIDOMNSHTMLElement> elem = do_QueryInterface(obj);
if (elem)
elem->GetInnerHTML(html);
// IE
CComBSTR html;
MSHTML::IHTMLElementPtr elem = obj;
if (elem)
elem->get_innerHTML(&html);
Run Code Online (Sandbox Code Playgroud)