我是一个javascript新手,所以如果这是一个“新问题”,我会提前道歉。
我正在制作一个显示Google地图的网络应用,并在您的位置使用标记进行地图制作。然后可以使用add_marker函数将更多标记添加到其中。代码的精简版本是:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="./common.css"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src=".\common.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function add_stops(lat,lng)
{
var loc = new google.maps.LatLng(lat,lng);
var marker = new google.maps.Marker
({
position: loc,
map: this.map,
marker: marker
});
}
</script>
<title>Local Stops</title>
</head>
<body>
<div id="map_canvas"></div>
<script type="text/javascript">initialize(null,null,16)</script>
<input type="button" id="10665" value="Stop 10665" onmouseover="add_stops(49.89995, -97.14124, 10665)"/>
<script type="text/javascript">add_stops(49.89995, -97.14124)</script>
</body>
</html>
我的问题是add_stops函数在正文中的脚本标记中调用时不会运行,但是当按钮的onmouseover事件调用时它可以正常工作。
简而言之,什么会导致函数从事件中运行,而不是从正文中调用时,我该怎么做才能解决它。
谢谢,非常感谢任何输入。
**编辑拼写
答案 0 :(得分:1)
加载页面时,尚未触发某些外部JavaScript函数。尝试使用setTimeout来延迟执行,例如在页面加载后5秒(5000)之后触发您的功能,以便Google脚本在此时间内自行执行。
编辑:代码段。类似的东西:
window.setTimeout(function() {add_stops(49.89995, -97.14124)}, 5000);
答案 1 :(得分:0)
<script type="text/javascript">add_stops(49.89995, -97.14124, 10665)</script>
此调用有3个参数,您的方法定义只有两个。可能与此有关。
答案 2 :(得分:0)
我猜你可以使用body标签的“onload”事件来调用这个函数,而不是编写一个脚本来调用它。