我已经远远地搜索了中国和南美洲的一端......我似乎找不到解决这个常见问题的具体方法。
我正在开发谷歌地图ap,并希望按需刷新地图的新细节。最初的问题是,webbrowser控件不会反映更改(仍保留原始htmltext)和新文档文本并刷新。我理解文档文本设置一次,显然不能改变。
我试过了
navigate("about:blank")
document.stop
document.new(true)
doevents
所有收集的用户对此问题的了解,只能让我走到一半。我可以使用上面的一些技术刷新页面,但它然后给我一个脚本错误和错误53,它们都没有细节或起源......只是空白错误....点击错误窗口后,我的页面刷新。
任何人都可以对明确的解决方案有所了解。它真的可能是一个很大的问题吗?
P.S。我不知道绑定到webbrowser控件的javascript事件是否会导致错误。有人建议错误是由于文档加载而没有关闭/打开所有引用...
有人可以让我免于精神错乱。
答案 0 :(得分:0)
好的,首先是第一件事,你确定这个新的数据交换不是在一个框架或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。