javaScriptコードをWebページに注入することにより、動的要素を使用してWebページ関数を強化できます。ただし、標準のhtmldocumentメソッドにはエラーが発生する場合があります。このガイドは、この問題の解決策を提供します。
問題は次のコードサンプルは、JavaScriptをドキュメントに注入しようとする試みを示しています。
ただし、SpriscelにアクセスするInnerHTML属性は、notSupportedExceptionの例外をスローします。これは、HTMlementタイプがスクリプト要素の内部HTMLをサポートしていないことを示しています。 solution
この問題を解決するには、基礎となるihtmlscriptelementインターフェイスにアクセスする必要があります。以下の更新されたコードフラグメントは、この方法を示しています:
<code>string newScript = textBox1.Text; HtmlElement head = browserCtrl.Document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = browserCtrl.Document.CreateElement("script"); lblStatus.Text = scriptEl.GetType().ToString(); scriptEl.SetAttribute("type", "text/javascript"); head.AppendChild(scriptEl); scriptEl.InnerHtml = "function sayHello() { alert('hello') }";</code>
説明
ドキュメントのヘッド要素を取得します。
新しいスクリプト要素を作成します。
<code>HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = webBrowser1.Document.CreateElement("script"); IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; element.text = "function sayHello() { alert('hello') }"; head.AppendChild(scriptEl); webBrowser1.Document.InvokeScript("sayHello");</code>
スクリプト要素のドメレメント属性から基礎となるihtmlscriptelementインターフェイスを取得します。 JavaScriptコードでスクリプト要素のテキストプロパティを設定します。
以上が「NotSupportedException」を回避するために HTML ドキュメントに JavaScript を正しく挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。