Durch die Injektion des JavaScript -Code in der Webseite können dynamische Elemente verwendet werden, um die Webseite zu verbessern. Die Standard -HTMLDocument -Methode kann jedoch auf Fehler stoßen. Dieser Leitfaden bietet eine Lösung für dieses Problem.
Das Problem befindet sich
Das folgende Code -Beispiel zeigt den Versuch, JavaScript in das Dokument zu injizieren:
Das Innerhtml -Attribut, das auf Scriptel zugreift, wirft jedoch die Notsupportededexception -Ausnahme aus. Dies zeigt, dass der HTMlement -Typ das interne HTML für das Skriptelement nicht unterstützt.
<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>
Um dieses Problem zu lösen, müssen wir auf die zugrunde liegende IHTMLScriptelement -Schnittstelle zugreifen. Das folgende aktualisierte Codefragment zeigt diese Methode:
Erläuterung
<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>
Holen Sie sich das Kopfelement des Dokuments. Erstellen Sie ein neues Skriptelement.
Das obige ist der detaillierte Inhalt vonWie kann JavaScript korrekt in ein HTML -Dokument injizieren, um 'notSupporedException' zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!