vb.net webbrowser控件,不刷新htmltext

时间:2012-02-06 07:44:22

标签: .net vb.net google-maps-api-3 webbrowser-control

我已经远远地搜索了中国和南美洲的一端......我似乎找不到解决这个常见问题的具体方法。

我正在开发谷歌地图ap,并希望按需刷新地图的新细节。最初的问题是,webbrowser控件不会反映更改(仍保留原始htmltext)和新文档文本并刷新。我理解文档文本设置一次,显然不能改变。

我试过了

navigate("about:blank") 
document.stop
document.new(true)
doevents

所有收集的用户对此问题的了解,只能让我走到一半。我可以使用上面的一些技术刷新页面,但它然后给我一个脚本错误和错误53,它们都没有细节或起源......只是空白错误....点击错误窗口后,我的页面刷新。

任何人都可以对明确的解决方案有所了解。它真的可能是一个很大的问题吗?

P.S。我不知道绑定到webbrowser控件的javascript事件是否会导致错误。有人建议错误是由于文档加载而没有关闭/打开所有引用...

有人可以让我免于精神错乱。

1 个答案:

答案 0 :(得分:0)

路易斯,你好吗?我理解WB控制问题如何成为破坏者,我会帮助你解决这个问题。但是,你能告诉我更多关于HTMLText和DocumentText以及你的意思吗?它们是WB控件的属性吗?我使用的是一个pre -.NET WB控件,它仍然主要是相同的东西,但.NET的一个有一些更奇特的属性和&方法:)。

好的,首先是第一件事,你确定这个新的数据交换不是在一个框架或iframe内发生的吗?因此,您无法在顶级html文档/页面的HTML文本中看到任何更改?我有一个函数,它递归地抓取对页面上所有帧的引用,以及这些帧中的所有帧,即每个帧和所有嵌套帧,直到无限深度。这可能会对你有所帮助。

另外,你用什么来获取文本? html文档是一个LIVE文档,因为随着元素的变化,DOM会发生变化,从DOM读取的内容也会更新,它是100%的实时文档,只要您将文档声明为MSHTML.IHTMLDocument然后你应该好好去。

最重要的是,我没有听到你提到.innerText,.outerText,.innerHTML和.outerHTML。这些当然是您想要从中检索文本/来源的项目。如果您想要完整的页面,请检查这些属性!因此,如果您希望BODY标记内的文本,您将执行以下操作:

说,IHTMLDocument对象叫做hDoc。

MsgBox hDoc.body.innerText

这将只显示BODY标签内的文本,以便在BODY标签内部获取HTML,就这样做。

MsgBox hDoc.body.innerHTML

现在,如果您想要BODY标签中的HTML,同时还要检索起始和结束BODY标签,那么您可以这样做:

MsgBox hDoc.body.outerHTML

...等......

当然,如果你想因为某种原因刷新文档,有一个webbrowser控件的刷新方法,它是WebBrowser1.Refresh,我认为有一个.Refresh2,刷新逻辑略有不同。

我可以继续,但想知道我在做之前已经正确理解了你的问题。现在,唯一改变的是webbrowser控件内的地图的实时图像,不是吗?也许围绕它的一些文字以及地址/等?或者只是图像数据发生了变化(自从我使用谷歌地图以来已经有一段时间了,并且不确定您使用的是哪种实现方式),所以如果您能让我知道究竟有什么变化以及您想要读取/读取的内容,我应该能够更好地帮助你,总而言之,我保证握住你的手直到我们想出这件事(笑) - 干杯交配,让我知道它是怎么回事。

ERX。