[C++] ブラウザに依存しないC ++ DOMインターフェイス


Answers

私はそれを見たことがない。 私のソフトウェアでは、FirefoxのJavaScriptで拡張機能を書いた後、Internet Explorer BHO(まだ完成していない)を作成しました。

Question

ブラウザのDOMに対してC ++でプログラミングする場合、各エンジンには異なるインターフェイスセットがあり、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);