gpt4 book ai didi

c# - 在WebBrowser控件C#中执行包含方法的javascript

转载 作者:行者123 更新时间:2023-11-28 09:05:14 25 4
gpt4 key购买 nike

我确实需要一些帮助来在 WebBrowser 控件中执行这段 javascript 代码。在网站上,它的执行方式如下:

"javascript:setTimeout('__doPostBack(\'dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995\',\'\')', 0)"

我尝试过很多事情,比如:

webBrowser1.Navigate("javascript:setTimeout('__doPostBack(\'dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995\',\'\')', 0)");

但是它不起作用。

有人有什么建议吗?

编辑:

也尝试过这个:

HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
element.text = "function __doPostBack(eventTarget, eventArgument)";
head.AppendChild(scriptEl);
webBrowser1.Document.InvokeScript("__doPostBack(\'dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995\',\'\'");

我收到 JS 异常:

enter image description here

编辑2:

我也这么做了:

string sa = @"function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}";

element.text = s;

但是什么也没发生,JS 没有被执行。

编辑3:

也尝试过

webBrowser1.Document.InvokeScript(@"__doPostBack(\'dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995\',\'\'");

但是什么也没发生。浏览器应该刷新。以下是浏览器中的代码:

<select name="dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995" onchange="javascript:setTimeout('__doPostBack(\'dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995\',\'\')', 0)" id="dsl50$ct160$g_818f5662_1255_51ab_d4e1_6bse0453e306$ba400$rdProcess$ucTopQuestions$qst_1995" class="dropdown" pid="as2ba2d5-d2cc-dad2-9e35-abd345678aac">
<option value="1 (1)">1</option>
<option value="2 (2)">2</option>
<option value="3 (3)">3</option>

</select>

最佳答案

检查此链接:

How to inject Javascript in WebBrowser control?

代码:

    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");

关于c# - 在WebBrowser控件C#中执行包含方法的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com