Foxtable(狐表)用户栏目专家坐堂 → 求助获取网页数据


  共有3160人关注过本帖树形打印复制链接

主题:求助获取网页数据

帅哥哟,离线,有人找我吗?
baoxyang
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
求助获取网页数据  发帖心情 Post By:2014/7/13 14:57:00 [只看该作者]

<html>
<head>
<meta http-equiv="Content-Type" c />
<style type="text/css">
body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
<title>根据起终点经纬度驾车导航</title>
</head>
<body>
<div id="allmap"></div>
<input type="hidden" id="jcgl_value" value="" />
</body>
</html>
<script type="text/javascript">
var jcgl_value = document.getElementById("jcgl_value");
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(121.391303, 31.248187), 15);
var p1 = new BMap.Point(121.391303,31.248187);
var p2 = new BMap.Point(121.291771,31.261807);
function getCJState (){
var searchComplete = function (results){
    if (transit.getStatus() != BMAP_STATUS_SUCCESS){
        jcsj_value.value = 0;
        jcgl_value.value = 0;
        return ;
    }
        var plan = results.getPlan(0);
        jcgl_value.value = plan.getDistance(true);
}

var transit = new BMap.TransitRoute(map,  {renderOptions: {map: map},
    onSearchComplete: searchComplete,
    onPolylinesSet: function(){       
    setTimeout(function(){alert(jcgl_value.value)},"1000");
    }});
transit.search(p1, p2);  
}
</script>

 

但在狐表调用e.Form.controls("textbox33").value = tdom.GetElementById("jcgl_value").GetAttribute("value")获取的数据是第二次数据,请教这个如何解决

 

Dim x1,x As String
Dim y1,y As String
Dim p1 As String = e.sender.value
Dim p As String = "上海市金华路898号"
If p1 = "" Or p = "" Then
    e.Form.controls("textbox33").value = 0 & "公里"
Else
    Dim XMLH1 As Object
    XMLH1 = CreateObject("Microsoft.XMLHTTP")
    XMLH1.open("GET", "http://api.map.baidu.com/geocoder?output=json&address=" & p1, True)
    XMLH1.send(Nothing)
    Do While XMLH1.readyState <> 4
        Application.DoEvents
    Loop
    Dim json1 As String = XMLH1.responseText
    Dim ScriptControl1 As Object, data1  As Object, JscriptCode1 As String
    JscriptCode1 = "function toObject(json) {eval(""var o=""+json);return o;}"
    ScriptControl1 = CreateObject("MSScriptControl.ScriptControl")
    With ScriptControl1
        .Language = "Javascript"
        .Timeout = -1
        .AddCode(JscriptCode1)
        data1 = .Run("toObject", json1)
    End With
    '设置htm地图的显示坐标
    Try
        x1 = data1.result.location.lng
        y1 = data1.result.location.lat
    Catch ex As Exception
        x1 = 0
        y1 = 0
    End Try
   
    Dim XMLH As Object
    XMLH = CreateObject("Microsoft.XMLHTTP")
    XMLH.open("GET", "http://api.map.baidu.com/geocoder?output=json&address=" & p, True)
    XMLH.send(Nothing)
    Do While XMLH.readyState <> 4
        Application.DoEvents
    Loop
    Dim json As String = XMLH.responseText
    Dim ScriptControl As Object, data  As Object, JscriptCode As String
    JscriptCode = "function toObject(json) {eval(""var o=""+json);return o;}"
    ScriptControl = CreateObject("MSScriptControl.ScriptControl")
    With ScriptControl
        .Language = "Javascript"
        .Timeout = -1
        .AddCode(JscriptCode)
        data = .Run("toObject", json)
    End With
    '设置htm地图的显示坐标
    Try
        x = data.result.location.lng
        y = data.result.location.lat
    Catch ex As Exception
        x = 0
        y = 0
    End Try
    If x = 0 Or y =0 Or x1=0 Or y1 = 0 Then
        e.Form.controls("textbox33").value = 0 & "公里"
    Else
        Dim data2 As String = FileSys.ReadAllText(ProjectPath & "map4")
        data2 = data2.Replace("/*经度*/", x1).Replace("/*纬度*/", y1).Replace("/*等级*/",15).Replace("/*px1*/", x1).Replace("/*py1*/", y1).Replace("/*px2*/", x).Replace("/*py2*/", y)
        FileSys.WriteAllText(ProjectPath & "map4.htm", data2, False)
        e.Form.Controls("WebBrowser1").Address = ProjectPath & "map4.htm"
        Dim tdom As System.Windows.Forms.HTMLDocument = e.Form.Controls("WebBrowser1").BaseControl.Document
        Do While tdom Is Nothing OrElse tdom.GetElementById("jcgl_value").GetAttribute("value") Is Nothing
       ' Do While e.Form.Controls("WebBrowser1").BaseControl.ReadyState <> 4
            Application.DoEvents
        Loop
        e.Form.controls("textbox33").value = tdom.GetElementById("jcgl_value").GetAttribute("value")总是获取是数据是第二次数据,请教这个如何解决
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/13 15:00:00 [只看该作者]

 不理解你说的第二次数据,请做完整例子发上来。

 回到顶部