Ali*_*Ali 6 c# forms webbrowser-control
我试图使用webbrowser控件自动提交表单.我使用以下代码提交"
currentElement.InvokeMember("submit");
Run Code Online (Sandbox Code Playgroud)
现在这种方法工作正常.但有时一个表单可能有一些javascript函数,在提交时按钮点击调用.所以,假设一个表单有一个名为"Submit"的按钮图像,当用户按下它时,调用一个javascript函数somefunction(),然后提交表单.
问题是当我使用上面的方法InvokeMember然后它只提交表单并且不执行相关的脚本(在这种情况下是somefunction())并且我必须手动编写代码
webBrowser1.Document.InvokeScript("somefunction");
Run Code Online (Sandbox Code Playgroud)
但这需要事先知道是否有某些功能.有什么方法我提交表单,它会自动运行所有相关的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>
Run Code Online (Sandbox Code Playgroud)
我已经有一段时间没有摆弄 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);
Run Code Online (Sandbox Code Playgroud)
奇迹般有效。
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |