javascript - 未捕获的 ReferenceError:未定义 getLocation
问题描述
我在一个网站上工作,现在遇到了一个错误。我想在加载页面时获取当前的纬度和经度。但是,当页面加载时,带有该代码的函数没有运行,并且显示错误“未捕获的 ReferenceError:getLocation 未定义”。
这是我的 HTML 部分
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=(mykey)&callback=initialize">
</script>
<style>
#map {
height: 100%;
width: 100%;
</style>
</head>
<body>
<div id="map"><img src="adminpanel/images/loader.gif" width="3%" height="5%"/> <b>Loading Map</b></div>
</body>
</html>
这是java脚本
<script type="text/javascript">
getLocation();
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
window.location.href="search-product.php?Lat=" + position.coords.latitude + "&Lng=" + position.coords.longitude;
}
var map;
var Markers = {};
var infowindow;
var locations = [
<?php for($i=0;$i<sizeof($locations);$i++) { $j=$i +1; ?>
[
'hi ',
'<a href="map_location_check.php?shop_id=<?php echo $locations[$i]['shop_id']; ?>" title="Click Here"><?php echo $locations[$i]['shop_name'].'<br>'.$locations[$i]['shop_address']; ?></a>',
<?php echo $locations[$i]['map_latitude']; ?>,
<?php echo $locations[$i]['map_longitude']; ?>,
0
] <?php if($j!=sizeof($locations)) echo ","; } ?>
];
var origin = new google.maps.LatLng(locations[0][2],locations[0][3]);
function initialize () {
var mapOptions = {
zoom:12,
center:origin
};
map = new google.maps.Map(document.getElementById('map'),mapOptions);
infowindow = new google.maps.InfoWindow();
for(i=0;i<locations.length;i++) {
var position = new google.maps.LatLng(locations[i][2], locations[i][3]);
var marker = new google.maps.Marker({
position:position,
map:map,
});
google.maps.event.addListener(marker, 'click', (function(marker, i){
return function() {
infowindow.setContent(locations[i][1]);
infowindow.setOptions({maxWidth: 200});
infowindow.open(map, marker);
}
}) (marker, i));
Markers[locations[i][4]] = marker;
}
locate(0);
}
function locate(marker_id){
var myMarker = Markers[marker_id];
var markerPosition = myMarker.getPosition();
map.setCenter(markerPosition);
google.maps.event.trigger(myMarker, 'click');
}
</script>
谢谢你的帮助..!
解决方案
在定义后调用getLocation
或将其分配给要提升的变量var getLocation = function(){...}
推荐阅读
- autodesk-forge - 在 Autodesk 的 Forge API 中使用本地文件和 URL 将图像文件添加到照片场景都失败了
- authentication - 如何在烧瓶中使身份验证令牌/标头更易于访问
- mysql - mysql 在尝试使用 case 选择两个不同的内容时返回混合排序规则
- pandas - 有趣的熊猫 groupby 困惑
- jakarta-ee - CDI 事件和 EJB 观察者的安全上下文
- python - 按每个主题的唯一值移动日期
- r - 多个动态选项卡创建中的条件面板
- python - 使用 databricks-connect 的 Azure 数据块连接
- python - matplotlib 中所有子图的相同 x-ticks
- amazon-web-services - 如何使用 Systems Manager `运行命令`