Dengan menyuntik kod JavaScript dalam laman web, unsur -unsur dinamik boleh digunakan untuk meningkatkan fungsi halaman web. Walau bagaimanapun, kaedah htmldocument standard mungkin mengalami kesilapan. Panduan ini memberikan penyelesaian kepada masalah ini.
Masalahnya terletak
sampel kod berikut menunjukkan percubaan untuk menyuntik JavaScript ke dalam dokumen:
Walau bagaimanapun, atribut innerHTML mengakses Scriptel akan membuang pengecualian yang tidak disokong. Ini menunjukkan bahawa jenis HTMLement tidak menyokong HTML dalaman untuk elemen skrip.
<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>
Untuk menyelesaikan masalah ini, kita perlu mengakses antara muka IHTMLScriptElement yang mendasari. Serpihan kod terkini berikut menunjukkan kaedah ini:
Penjelasan
<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>
Dapatkan elemen kepala dokumen. Buat elemen skrip baru.
Atas ialah kandungan terperinci Bagaimana cara menyuntik JavaScript ke dalam dokumen HTML untuk mengelakkan `notSupportedException`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!