经常可能你会看到,父页面中的某个文本框一点击,就跳入到一个新页面(称之为子页面),子页面中点击某个按钮,子页面关闭,父页面的文本框中已经获得刚刚子页面中的值。
1. 父页面中给文本框添加一个单击事件。这个单击事件中必须以如下方式打开子页面:
window.open('xxxx.html');//其中xxxx为子页面。
2.子页面中这样给父页面文本框赋值:
window.opener.document.getElementById("父页面中文本框的Id").value = 需要传给父页面的值;
window.close();
至此,就实现了子页面给父页面传值。下面上代码:
-----------------代码start--------------------
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>根据地址查询经纬度</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>
<script>
// window.opener.document.getElementById("父页面元素的id").value = '子页面填写的值'
</script>
</head>
<body style="background:#CBE1FF">
<div>
<!--<div style="width:730px;margin:auto;">-->
要查询的地址:<input id="text_" type="text" value="九里堤交桂二巷" style="margin-right:0px;" />
<!--查询结果(经纬度):<input id="result_" type="text" />-->
<input type="button" value="查询" οnclick="searchByStationName();" />
<input type="submit" value="确定" οnclick="getJWD()"/>
<br/>
<!--<div id="container" style="position: absolute;-->
<!--margin-top:30px;-->
<!--width: 730px;-->
<!--height: 590px;-->
<!--top: 50px;-->
<!--border: 1px solid gray;-->
<!--overflow:hidden;">-->
<!--</div>-->
<div id="container" style="position: absolute;
margin-top:30px;
width: 100%;
height: 100%;
top: 50px;
border: 1px solid gray;
overflow:hidden;">
</div>
</div>
</body>
<script type="text/javascript">
var jwdVal;
var map = new BMap.Map("container");
map.centerAndZoom("成都", 15);
// map.enableScrollWheelZoom(true); //启用滚轮放大缩小,默认禁用
map.enableScrollWheelZoom();
// map.enableContinuousZoom(); //启用地图惯性拖拽,默认禁用
map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
map.addControl(new BMap.OverviewMapControl()); //添加默认缩略地图控件
map.addControl(new BMap.OverviewMapControl({
isOpen: true,
anchor: BMAP_ANCHOR_BOTTOM_RIGHT
})); //右下角,打开
var localSearch = new BMap.LocalSearch(map);
// localSearch.enableAutoViewport(); //允许自动调节窗体大小
function searchByStationName() {
map.clearOverlays(); //清空原来的标注
var keyword = document.getElementById("text_").value;
localSearch.setSearchCompleteCallback(function(searchResult) {
var poi = searchResult.getPoi(0);
//document.getElementById("result_").value = poi.point.lng + "," + poi.point.lat;
jwdVal = poi.point.lng + "," + poi.point.lat;
map.centerAndZoom(poi.point, 13);
var marker = new BMap.Marker(new BMap.Point(poi.point.lng, poi.point.lat)); // 创建标注,为要查询的地方对应的经纬度
map.addOverlay(marker);
marker.enableDragging();
var content = document.getElementById("text_").value + "<br/><br/>经度:" + poi.point.lng + "<br/>纬度:" + poi.point.lat;
var infoWindow = new BMap.InfoWindow("<p style='font-size:14px;'>" + content + "</p>");
marker.addEventListener("click", function() {
this.openInfoWindow(infoWindow);
});
marker.addEventListener("dragend", function(e){ //拖拽标注获取标注坐标
// alert("当前位置:" + e.point.lng + ", " + e.point.lat); //可拖拽的标注
// document.getElementById("result_").value = e.point.lng + ", " + e.point.lat;
jwdVal = e.point.lng + ", " + e.point.lat;
}
);
});
localSearch.search(keyword);
};
//将子页面中获取到的值,赋值到父页面的文本框中。
function getJWD(){
//proLocation为父页面中文本框的id
window.opener.document.getElementById("proLocation").value = jwdVal;
window.close();
};
</script>
</html>
-----------------代码end---------------------
喜欢编程的朋友,欢迎和我交流,微 信 公 众 号:“软件编程网站开发”