【发布时间】:2015-04-06 16:05:53
【问题描述】:
我在 google maps api 页面上找到了一个脚本,用户可以在其中选择位置并将数据发送到 PHP -> MySQL。它在 chrome 和 IE 中运行良好,但是当我尝试在 mozilla 中保存位置时,它所做的只是刷新父页面。 我对javascript几乎一无所知,所以如果有人能找到错误,将不胜感激:)
代码
<!DOCTYPE html >
<head>
<meta name=viewport content='initial-scale=1.0, user-scalable=no' />
<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>
<title>Google Maps JavaScript API v3 Example: Map Simple</title>
<script type='text/javascript' src='https://maps.googleapis.com/maps/api/js'></script>
<script type='text/javascript'>
var marker;
var infowindow;
function initialize() {
var latlng = new google.maps.LatLng(33.137550, -42.187500);
var options = {
zoom: 1,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('map-canvas'), options);
var html = "<table><tr><td><input type='button' value='Save Location' onclick='saveData(), window.parent.location.reload();'/></td></tr></table>";
infowindow = new google.maps.InfoWindow({
content: html
});
function addMarker(location) {
if (!marker) {
marker = new google.maps.Marker({
position: location,
map: map
});
}
else { marker.setPosition(location); }
}
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
});
}
function saveData() {
var latlng = marker.getPosition();
var url = 'insert_location.php?lat=' + latlng.lat() + '&lng=' + latlng.lng();
downloadUrl(url, function(data, responseCode) {
if (responseCode == 200 && data.length >= 1) {
infowindow.close();
}
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
</script>
</head>
<body style='margin:0px; padding:0px;' onload='initialize()'>
<div id='map-canvas' style='width: 100%; height: 800px'></div>
<div id='message'></div>
</body>
</html>
【问题讨论】:
-
window.parent.location.reload在里面做什么?
标签: javascript html google-maps google-maps-api-3 mozilla