回答編集履歴
1
InvokeScriptについて追記
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
WebBrowserコントロール内のHTML/JavaScriptにC#から値を渡す場合、次の3つの方法が考えられます。
|
2
2
|
|
3
|
-
0. WebBrowser.Document プロパティを通じてHTMLDOMツリーにアクセスし、目的のDOM要素を書き換える。JavaScriptによるDOM操作時と同様に、WebBrowser.Document.GetElementById() で目的のDOM要素を取得し、HTMLElement.innerHtml を書き換える、といった操作が可能です。
|
3
|
+
0. WebBrowser.Document プロパティを通じてHTMLDOMツリーにアクセスし、目的のDOM要素を書き換える。JavaScriptによるDOM操作時と同様に、WebBrowser.Document.GetElementById() で目的のDOM要素を取得し、HTMLElement.innerHtml を書き換える、あるいはWebBrowser.Document.InvokeScript() によりJavaScriptコードを実行、その際functionにパラメーター文字列を与えて呼び出す、といった操作が可能です。
|
4
4
|
0. WebBrowser.DocumentStream または WebBrowser.DocumentText にHTML全文をテキストとして与える。この場合、C#の変数値等は、HTMLテキストの組み立て処理などで組み込んでやることができます。
|
5
5
|
0. WebBrowser.ObjectForScript(HTML側からは window.external という特殊オブジェクトで参照できる) を通じてHTML側の要素やJavaScriptとC#コード間で通信し、必要な情報をやりとりする。
|
6
6
|
|