【VBA如何获取网页鼠标悬浮框内的文字】最后一个坎,求大神相助!

xiangcheng92 2019-01-04 04:36:39
最近我自己写了一个通过EXCEL实现自动批量查询地址高德、谷歌坐标的程序,基本上想要的功能都实现了,但是目前唯一有一个难点,我不知道怎么获取网页的鼠标悬浮框中的文本,遍历了源码中的所有节点,未找到对应的载体,但是我找到了这个:
fnPlaceSearchCallback = function(result){
if(result == 'complete'){
return
}

if(result.poiList && result.poiList.pois && result.poiList.pois.length){
var poi = result.poiList.pois[0];
mapObj.setZoomAndCenter(13, poi.location);
marker.setTitle([poi.name, poi.address].join(poi.name && poi.address ? "\n" : ""));
marker.setPosition(poi.location);
marker.setMap(mapObj);
$txtCoordinate[0].value = poi.location.toString();
}
else{
fnShowSearchMessage("没有搜索到结果!!!");
}
}
我不懂这是什么语言,只会一点VB的皮毛,但是感觉那个setTitle应该就是我要找的东西,这个应该是调用了某个函数,但是不知道怎么把那个marker的title值弄到。。。。
网站是这个https://lbs.amap.com/console/show/picker 高德的开放平台。
我想实现的是通过输入的地址关键字在地图上定位,然后获取那个定位的详细地址信息,这个信息只有在鼠标移到地图上蓝色的定位标志上时才会浮现。现在其他的都已经解决,就是卡到了不知道怎么才能获取那个详细地址
求助大神这个通过VBA代码可以实现吗?初来贵地,再次感谢各位大神花时间阅读我的帖子,不胜感激!
...全文
240 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
X-i-n 2019-01-06
  • 打赏
  • 举报
回复
引用 6 楼 xiangcheng92 的回复:
[quote=引用 5 楼 X-i-n 的回复:] Debug.Print wb.Document.getelementsbyclassname("amap-icon")(0).GetAttribute("title") 不需要取img,鼠标提示的内容在img的父容器div的title属性里。这个div的classname是amap-icon,而且结果唯一。要么有,要么只有一个。
谢谢,不过我电脑上用不了byclassname那个方法,百度了下貌似是控件不支持,我后来用一个谷歌插件找到了那个对象的父节点ID,然后把整个里面的文本一股脑全弄出来后也提取出地址了~ t1 = ie.document.getelementbyid("map").innerhtml '高德地图精确地址 u1 = InStr(t1, """><div title=""") + 14 u2 = InStr(t1, """ class=""" & "amap-icon""") s1 = Mid(t1, u1, u2 - u1) 条条大路通罗马[/quote] 对,就是这个思路,不去纠结鼠标,直接从源代码里找。
xiangcheng92 2019-01-06
  • 打赏
  • 举报
回复
引用 5 楼 X-i-n 的回复:
Debug.Print wb.Document.getelementsbyclassname("amap-icon")(0).GetAttribute("title") 不需要取img,鼠标提示的内容在img的父容器div的title属性里。这个div的classname是amap-icon,而且结果唯一。要么有,要么只有一个。
谢谢,不过我电脑上用不了byclassname那个方法,百度了下貌似是控件不支持,我后来用一个谷歌插件找到了那个对象的父节点ID,然后把整个里面的文本一股脑全弄出来后也提取出地址了~ t1 = ie.document.getelementbyid("map").innerhtml '高德地图精确地址 u1 = InStr(t1, """><div title=""") + 14 u2 = InStr(t1, """ class=""" & "amap-icon""") s1 = Mid(t1, u1, u2 - u1) 条条大路通罗马
X-i-n 2019-01-05
  • 打赏
  • 举报
回复
Debug.Print wb.Document.getelementsbyclassname("amap-icon")(0).GetAttribute("title") 不需要取img,鼠标提示的内容在img的父容器div的title属性里。这个div的classname是amap-icon,而且结果唯一。要么有,要么只有一个。
xiangcheng92 2019-01-04
  • 打赏
  • 举报
回复
引用 2 楼 X-i-n 的回复:
这是JS。 没必要非等鼠标移上去。可以直接用$(".amap-icon").attr('title')取到你的结果,或者getelementsbyclass("amap-icon"),不过比较诡异的是模糊查询居然返回唯一结果,这个准确性需要你自己去评估。
大神你好, 我查找了下网站的source,发现了这个图标,应该是鼠标放上去就触发显示文字。还有那个getelementsbyclass用在VB里貌似不行啊。。。我试了下好像就只能用ID,TAGS,NAME,和TAGNAME,求指教。。。
xiangcheng92 2019-01-04
  • 打赏
  • 举报
回复
引用 2 楼 X-i-n 的回复:
这是JS。 没必要非等鼠标移上去。可以直接用$(".amap-icon").attr('title')取到你的结果,或者getelementsbyclass("amap-icon"),不过比较诡异的是模糊查询居然返回唯一结果,这个准确性需要你自己去评估。
那请问这个用VB语言应该怎么写啊?你这个是JS的语句吧?我用在VB里都没用呢
X-i-n 2019-01-04
  • 打赏
  • 举报
回复
这是JS。 没必要非等鼠标移上去。可以直接用$(".amap-icon").attr('title')取到你的结果,或者getelementsbyclass("amap-icon"),不过比较诡异的是模糊查询居然返回唯一结果,这个准确性需要你自己去评估。
xiangcheng92 2019-01-04
  • 打赏
  • 举报
回复
自顶一下,在线急等。。。谢谢

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧