C#.NET で BHO を使用して、ロード時に Web ページにフローティング DIV を作成するにはどうすればよいですか?
ページに「Hello World」を表示する DIV の HTML コード スニペットを挿入したいだけです。div には絶対位置スタイルが必要です。
-だって
私が使う:
HTMLDocument document = (HTMLDocument)webBrowser.Document;
IHTMLElement body = (IHTMLElement)document.body;
body.insertAdjacentHTML("afterBegin", "html code");
これはタグを実行しないと思い<style>
ますが、使用できます
<div style="position:absolute;z-index:2000000;top:50%;left:50%;width:300px;height:300px;margin-top:-150px;margin-left:-150px;background:#000;">Hello World</div>
ただし、この方法でjsを実行することはできません。回避策を見つけました。iframeタグを挿入し、onload = ""タグにjsを設定すると、ブラウザがjsを実行します。または、次を使用できます。
document.parentWindow.execScript("alert('a')");
私は一度外部jsファイルを挿入するためにそれを使用しました、そしてそれはうまくいったと思います。
documentcomplete イベントをシンクし、完成したドキュメントの親ウィンドウを取得して、ウィンドウ オブジェクトで ExecScript を呼び出すだけです。ドキュメントに HTML を挿入する JavaScript コードについては、IE SDK の DHTML リファレンスを確認するか、jquery などのオープン ソースの DHTML クラス ライブラリを見つけてそのコードを読んでください。