他の HTML に付随する CSS を C# マネージド WebBrowser コントロールに挿入しようとしています。このコードは完全な IE8 BHO の一種のプロトタイプとして機能しているため、基になる MSHTML (DomDocument プロパティ) コントロールを介してこれを実行しようとしています。
問題は、HTML (mydomdocument.body.insertAdjacentHTML 経由) と Javascript (mydomdocument.parentWindow.execScript 経由) を挿入できますが、CSS コードを完全に拒否することです。
挿入したい HTML を含む文字列をインジェクション後の宛先ページ ソースと比較すると、MSHTML のソースには、要素とその基になるソースを除くすべてが文字通り含まれます。<style>
CSS は、CSS 2.1 の W3C 検証に合格しています。一部の background-image プロパティは画像を直接 CSS に埋め込んでおり (例: background-image: url("data:image/png;base64
...)、これらの行をコメントアウトしても結果は変わりません。
さらに奇妙なことに (これが関連しているかどうかはわかりませんが)、先週は問題がなかったということです。今週また戻ってきましたが、実際に挿入する前に、挿入される HTML を処理するコードの一部を切り替えたところ、機能しなくなりました。当然、私の変更の 1 つが何らかの問題である可能性があると考えましたが、すべてのロジックをコメントアウトしてストレート文字列を入力した後でも、HTML はまだフォーマットされていないように見えます。
現時点では、<body>
タグに注入していますが、注入しようとしましたが<head>
、同様の結果が得られました。
よろしくお願いします。
トム