gpt4 book ai didi

C# webbrowser 控件(执行与表单关联的所有 javascript)

转载 作者:太空狗 更新时间:2023-10-29 21:46:14 29 4
gpt4 key购买 nike

我正在尝试使用网络浏览器控件自动提交表单。我正在使用以下代码提交”

currentElement.InvokeMember("submit");

现在这个方法工作正常。但有时一个表单可能有一些在提交时点击按钮时调用的javascript函数。假设一个表单有一些名为“提交”的按钮图像,当用户按下它时,一个 javascript 函数 somefunction() 被调用,然后表单被提交。

问题是当我使用上面的方法 InvokeMember 然后它只提交表单而不执行相关的脚本(在本例中是 somefunction()),我必须手动编写代码

webBrowser1.Document.InvokeScript("somefunction");

但这需要我事先知道是否有某种功能。有什么方法可以让我提交表单并自动运行所有关联的 javascript?

而且我不知道用户单击以提交表单的按钮名称或 ID。因为在某些情况下,它甚至可能没有 ID 或名称,例如

<span class="btn" onclick="somefunction()">
<img style="cursor:pointer" title="Submit" alt="Submit" src="http://stackoverflow.com/imagesbutton.png?2012">
<div id="s" style=""></div>
</span>

最佳答案

自从我弄乱 WebBrowser 控件以来已经有一段时间了,但我曾经让它为我跳过了障碍。我过去遇到过这个问题。

http://www.codeproject.com/Tips/60924/Using-WebBrowser-Document-InvokeScript-to-mess-aro

当你得到一个 Form 对象时,从 OnSubmit 中取出字符串并在提交表单之前运行它来执行它:

object[] codeString = {"myObject.setVariable(0);"};
webBrowser1.Document.InvokeScript("eval",codeString);

像魅力一样工作。

关于C# webbrowser 控件(执行与表单关联的所有 javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10276813/

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