首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotnetbrowser如何从Dotnetbrowser获取表单数据?

Dotnetbrowser如何从Dotnetbrowser获取表单数据?
EN

Stack Overflow用户
提问于 2017-10-14 16:14:09
回答 1查看 608关注 0票数 1

我需要帮助,以得到张贴表单数据的Dotnetbrowser。实际上,当单击该按钮时,我希望在按钮上添加一个侦听器事件,因此我获得了数据,例如:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>Hello!!!</h1><br>
    <form
      id="formTrying"
      method="post"
      action="http://localhost/MyWebSite/MyMvcView?MyQueryStringParam1=something&Param2=something"
    >
      <input name="txtSomething" type="text" value="Trying something..."><br>
      <input type="submit" value="Submit...">
    </form>
  </body>
</html>

当我单击submit按钮时,我会从"txtSomething“中得到值。或者,当dotnetbrowser检测到表单提交时,我会从"txtSomething“中得到值。

提前谢谢。;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-16 07:02:27

您可以尝试为相应的DOM元素注册一个OnClick事件侦听器,以获得有关单击的通知。

在您的例子中,这可以如下所示:

代码语言:javascript
复制
browser.FinishLoadingFrameEvent += delegate (object sender, FinishLoadingEventArgs e)
{
    if (e.IsMainFrame)
    {
        DOMDocument document = e.Browser.GetDocument();
        List<DOMNode> inputNodes = document.GetElementsByTagName("input");
        DOMInputElement submitElement = (DOMInputElement)inputNodes.LastOrDefault();

        DOMEventHandler domEvent = delegate (object s, DOMEventArgs args)
        {
            //Obtain the value of the txtSomething field
            DOMInputElement txtSomethingElement = (DOMInputElement)document.GetElementByName("txtSomething");
            string value = txtSomethingElement.Value;
            Console.Out.WriteLine("txtSomething value = " + value);
        };

        submitElement.AddEventListener(DOMEventType.OnClick, domEvent, false);
    }
};
browser.LoadHTML(@"<!DOCTYPE html>
<html lang='en' xmlns='http://www.w3.org/1999/xhtml'>
  <body>
    <h1>Hello!!!</h1><br>
    <form
      id='formTrying'
      method='post'
      action='http://localhost/MyWebSite/MyMvcView?MyQueryStringParam1=something&Param2=something'
    >
      <input name='txtSomething' type='text' value='Trying something...'><br>
      <input type='submit' value='Submit...'>
    </form>
  </body>
</html>");

下面的文章详细说明如何注册DOM事件侦听器:https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110034-listening-to-dom-events

此外,还有一篇文章展示了如何以编程方式设置表单字段的值:https://dotnetbrowser.support.teamdev.com/support/solutions/articles/9000110038-setting-input-field-value-working-with-form。示例中的ValueChecked属性是与JavaScript中可用的valuechecked属性相对应的读写属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46746645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档