webBrowser控件在Ajax网页更新后或在框架中找不到htmlElement

时间:2010-03-18 05:47:52

标签: c# ajax browser getelementbyid

在winForm中使用webBrowser控件。但是当网页由Ajax或框架更新时,我无法使用 webBrowser1.document.getElementById等找到htmlElement。该元素也不会显示在IE中的View->Source code中。

非常接近的目的是找到htmlElement并模拟点击或其他功能 invokeMember("staff")

2 个答案:

答案 0 :(得分:1)

WebBrowser的Document对象确实代表了DOM的实时视图,因此可能还有其他一些原因导致您无法找到它。但是,DOM更新不会在View中显示 - >资源。您应该使用IE8的开发人员工具,它将向您显示DOM的实时视图,并且您可能会看到类似不正确/重复ID的内容。

答案 1 :(得分:0)

我猜你已经自己解决了这个问题,但是如果你还没有,请在这里参考我的问题:WebBrowser Control and GetElement by ID

基本上,如果你对WebBrowser控件执行某些操作(即向DOM添加一些成员),它将异步执行。也就是说,它在另一个线程上执行,这样可以避免在WebBrowser正在工作时锁定调用线程。问题是,如果使用命令以编程方式修改某些内容,则必须等到该命令实际完成加载其更改,直到您可以使用它的结果。

在那里查看我的问题以获取我正在做的代码示例。我希望有人能发现我以前的试验有用。