C# 中向 WebBrowser 控制項注入 JavaScript 程式碼
本文介紹一種將 JavaScript 程式碼注入 WebBrowser 控制項文件物件模型 (DOM) 的技術。這種方法源自於直接使用 InnerHtml
屬性操作腳本元素的困難。
以下步驟將引導您完成此過程:
取得 WebBrowser 控制項中目前文件的 head
元素:
<code class="language-csharp">HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];</code>
使用 CreateElement
方法建立一個腳本元素:
<code class="language-csharp">HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");</code>
將腳本元素轉換為 IHTMLScriptElement
介面。此步驟至關重要,因為它允許存取定義腳本元素「text」屬性的介面:
<code class="language-csharp">IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;</code>
將 text
屬性設定為所需的 JavaScript 程式碼:
<code class="language-csharp">element.text = "function sayHello() { alert('hello') }";</code>
將腳本元素附加到 head
元素,以將腳本注入 DOM:
<code class="language-csharp">head.AppendChild(scriptEl);</code>
要執行注入的 JavaScript 函數,請在 WebBrowser 控制項的 Document
物件上呼叫 InvokeScript
方法:
<code class="language-csharp">webBrowser1.Document.InvokeScript("sayHello");</code>
透過此方法,您可以將 JavaScript 程式碼注入 WebBrowser 控制項的 DOM,從而動態修改其功能和行為。
以上是如何使用C#將JavaScript注入WebBrowser控件中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!