Csharp/C#教程:调用document.GetElementsByTagName(“head”)时出现奇怪的错误分享


调用document.GetElementsByTagName(“head”)时出现奇怪的错误

我有一个应用程序,它使用以下代码在WebBrowser网页中注入JavaScript:

 HtmlElement head = document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = document.CreateElement("script"); IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; element.text = CurrentFuncs; head.AppendChild(scriptEl); 

但是我刚收到一个客户的错误报告,该客户在document.GetElementsByTagName("head")[0]中遇到exceptiondocument.GetElementsByTagName("head")[0]代码段说:“’0’的值对’index’无效。’index’应该介于0和-1之间。“ 我很确定这是来自那行代码中的[0] ,但不知道为什么。

我假设是因为没有“头”元素。 我刚上传了一个没有头的页面并用我的应用程序打开它,但是错误没有重现。 WebBrowser自动添加“head”元素。 我甚至尝试上传“.txt”文件但仍然没有错误。 知道为什么会发生这种情况或者如何重现错误?

不幸的是,我不知道错误发生在哪个网页上。

我怀疑你的代码是这样的:

 string url = "https://www.google.com"; webBrowser1.Navigate(url); HtmlDocument document = webBrowser1.Document; HtmlElement head = document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = document.CreateElement("script"); mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement; element.text = "alert('1');"; head.AppendChild(scriptEl); 

问题是在Navigate之后,文档尚未加载。 您需要将访问该文档的代码部分移动到DocumentCompleted处理程序中。

上述就是C#学习教程:调用document.GetElementsByTagName(“head”)时出现奇怪的错误分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 private void Go() { webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); string url = "https://www.google.com"; webBrowser1.Navigate(url); } void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { HtmlDocument document = webBrowser1.Document; HtmlElement head = document.GetElementsByTagName("head")[0]; HtmlElement scriptEl = document.CreateElement("script"); mshtml.IHTMLScriptElement element = (mshtml.IHTMLScriptElement)scriptEl.DomElement; element.text = "alert('1');"; head.AppendChild(scriptEl); // Code here } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1015010.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐