2 qq 21580549 qq_21580549 于 2015.05.29 13:55 提问

关于C#webBrowser 无法获取js元素的问题

生成一个百度HTML如下,并窗口创建的时候执行

 <!DOCTYPE html>
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <style type="text/css">
  body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
  #l-map{height:100%;width:78%;float:left;border-right:2px solid #bcbcbc;}
  #r-result{height:100%;width:20%;float:left;}
  </style>
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
  <title>百度地图的Hello, World</title>
  </head>
  <body>
  <div id="allmap"></div>
  </body>
  </html>
  <script type="text/javascript">
 var map = new BMap.Map("allmap");            // 创建Map实例
var point = new BMap.Point(116.404, 39.915);    // 创建点坐标
map.centerAndZoom(point,15);                     // 初始化地图,设置中心点坐标和地图级别。
map.enableScrollWheelZoom();                            //启用滚轮放大缩小

//单击获取点击的经纬度
map.addEventListener("click",function(e){
 document.getElementById("mouselng").innerHTML=e.point.lng;  
 document.getElementById("mouselat").innerHTML=e.point.lat; 
    //alert(e.point.lng + "," + e.point.lat); //弹出消息显示坐标是可以的
});

 </script>

现在通过C#webBrowser控件


              string tag_lng = webBrowser.Document.GetElementById("mouselng").InnerText;
               string tag_lat = webBrowser.Document.GetElementById("mouselat").InnerText;  想获取 e.point.lng和e.point.lat

但是老是显示innerhtml值为空,而且值也取不出来是为什么呢?

3个回答

showbo
showbo   Ds   Rxr 2015.05.29 14:15

document.getElementById("mouselng").innerHTML=e.point.lng;

document.getElementById("mouselat").innerHTML=e.point.lat;

你html页面就没有这个2个对象好不。。就算有这2个对象的值是通过点击事件附加的。如果没有触发过点击事件获取到的也是空值

oyljerry
oyljerry   Ds   Rxr 2015.05.29 14:02

是不是页面是异步加载的,你取的时候,页面还没ready

testcs_dn
testcs_dn   Rxr 2015.11.16 14:19

直接在浏览器中访问能取到么?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!