【问题标题】:Two Questions about the WebBrowser Control关于 WebBrowser 控件的两个问题
【发布时间】:2010-04-27 06:28:44
【问题描述】:
  1. 如果源代码没有“id=''”,而只有“name=''”,我如何获得 HtmlElement。 Document.GetElementById() 不起作用,Document.All[""] 不起作用(显然是因为没有ID。

  2. 如何模拟表单发布?

问题 1 更重要,因为我发现它更难搜索。问题 2 我想我可以通过更多搜索得到。

【问题讨论】:

  • 您能否指定这与 webbrowser 控件有什么关系?另外,which webbrowser 控件?表格?这和asp.net有什么关系?
  • 我突然想到,第 1 项的解决方案都不起作用的原因可能是因为您是在服务器端进行的。那是对的吗?如果是这样,我强烈建议给控件一个 id。它会为你省去很多心痛。

标签: c# browser


【解决方案1】:

GetElementsByTagName 可以得到你所追求的所有标签,然后你可以在返回的集合中查看你所追求的元素(如果有多个)。

This 帖子展示了如何提交表单元素。

【讨论】:

    【解决方案2】:

    您也可以通过 GetElementByName 获取元素。

    【讨论】:

    【解决方案3】:

    这里似乎有些混乱,所以我总结一下:

    document 对象上,您可以使用多种方法来定位元素:

    • document.getElementById('myid'); 将返回单个 DOM 元素(如果存在),其 id 属性等于 myid
    • document.getElementsByName('myname'); 将返回一个 DOM 元素数组,其 name 属性等于 myname
    • document.getElementsByTagName('div'); 将返回一个带有匹配标签的 DOM 元素数组 - 在这种情况下,文档中的所有 divs。

    案件很重要。

    这样就清楚了吗?

    这应该适用于所有浏览器,只要您不尝试在 iframe 或类似的东西中获取元素,但如果您在使用不同的浏览器时遇到问题,我建议您使用 jQuery 之类的东西。它从您那里抽象出浏览器的差异,因此无论使用哪种浏览器,您都可以使用相同的语法。

    【讨论】:

      【解决方案4】:

      1。 您可以使用document.getElementsByName。它返回一个数组,其中包含具有指定名称的所有元素(因为名称不必像 id:s 那样唯一)。

      2。 您可以使用form 元素的submit 方法发布它。表单可以是页面中的现有表单,也可以在需要时动态创建。

      如果您想自己处理响应而不是将其作为文档加载,您也可以使用 XmlHttpRequest 对象发布帖子。

      【讨论】:

      • document.getElementsById -> 没有这样的东西。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      • 2019-02-17
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多