我遇到两个错误:
TypeError:window.geoTest不是函数
SyntaxError:missing;在陈述之前
这些错误意味着什么?我无法看到我错过了分号的位置。 window.geoTest不是函数意味着什么?
"use strict";
var waitForUser;
function geoTest() {
waitForUser = setTimeout(fail, 10000);
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(createMap, fail, {timeout: 10000});
} else {
fail();
}
}
function createMap(position) {
clearTimeout(waitForUser);
var Lat = position.coords.latitude;
var Lng = position.coords.longitude;
var mapOptions {
center: new google.maps.LatLng(Lat, Lng),
zoom: 10
};
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
}
function fail() {
document.getElementById("map").innerHTML = "Unable to access your current location";
}

<body>
<header>
<h1>
Hands-on Project 10-3
</h1>
</header>
<article>
<div id="cities">
<div id="beijing">Beijing</div>
<div id="paris">Paris</div>
<div id="rio">Rio de Janeiro</div>
</div>
<div id="caption">
Your location
</div>
<div id="map"></div>
</article>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&callback=geoTest"></script>
<script src="script.js"></script>
</body>
</html>
&#13;
答案 0 :(得分:1)
请更正此信息,您错过了&#34; =&#34;
var mapOptions {
center: new google.maps.LatLng(Lat, Lng),
zoom: 10
};
要
var mapOptions = {
center: new google.maps.LatLng(Lat, Lng),
zoom: 10
};
答案 1 :(得分:1)
SyntaxError:missing;在陈述之前
此错误是由以下代码段引起的:
var mapOptions {
center: new google.maps.LatLng(Lat, Lng),
zoom: 10
};
因为您错过了赋值运算符=
。
var mapOptions = {
center: new google.maps.LatLng(Lat, Lng),
zoom: 10
};
这应该是一个非常简单的错误,即使错误说您错过了;
,因为错误通常会提供错误发生的行号。另一件事是,通常会抛出任何语法错误,通常非常接近语法错误的位置。所以,当我看到一个错误时,我通常会这样做,因为我发现任何语法错误。
TypeError:window.geoTest不是函数
我想说明我不知道你是否正确使用google maps
api,但我相信这个错误是因为你正在使用一个尚未创建的函数(换句话说,一个变量未定义为函数或未定义的变量用作函数)。所以,在这里你需要去你使用该功能的地方,就在这里:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&callback=geoTest"></script>
在加载定义函数的script.js
之前。要解决这个问题,请将script
标记的位置换成:
<script src="script.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true&callback=geoTest"></script>
现在,将为回调定义该函数。
答案 2 :(得分:0)
如果您希望在https://maps.googleapis.com/maps/api/js中调用geoTest()
,则必须在https://maps.googleapis.com/maps/api/js中使用代码来调用它。它只是因为你把它放在URL中而不会被调用。您需要将代码解析出URL,然后调用它。
或者,您也可以在脚本加载完成后挂接通知,并在https://maps.googleapis.com/maps/api/js完全加载后,在https://maps.googleapis.com/maps/api/js之外自己致电geoTest()
。
检测外部脚本文件何时成功加载并自行调用geoTest()
。
供参考点击here!