【发布时间】:2012-07-25 12:06:57
【问题描述】:
我正在做 javascript 注入,下面是我的代码。
HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function sayHello() { debugger; alert('Helloooo');" + " var resume=webBrowser1.Document.GetElementByTagName('resID');" +
" var i; for (i=0;i<resume.length;i++){if (resume[i].checked){alert(\"hi....\");} } }";
head.AppendChild(scriptEl);
System.Diagnostics.Debug.Print("html: {0}",head.InnerHtml);
webBrowser1.Document.InvokeScript("sayHello");`
我的复选框名称是 resID。 sayHello 函数中 alert 之后的语句没有执行。这段代码的结果是,它发出警告为 Hello 并停止执行。访问复选框值时我的代码中是否有任何错误。我
【问题讨论】:
-
如果您希望人们回答,您需要格式化。
-
在在浏览器中执行脚本中使用
webBrowser1.Document.getElementsByTagName不会起作用,因为它不知道webBrowser1是什么;它只是 C# 代码范围内的有效标识符。document.getElementsByTagName会起作用。 -
当你想要格式化代码时,只需在你的最后一行文本和缩进四个空格的代码的第一行之间放一个空行。不然不会上色。如果您想要一行文本的代码
in the middle,请仅使用反引号 ` -
谢谢 Alex K,它成功了。
标签: javascript c#-4.0 html-parsing