没有调用JS函数

时间:2011-09-13 18:41:38

标签: javascript google-maps

我是一个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事件调用时它可以正常工作。

简而言之,什么会导致函数从事件中运行,而不是从正文中调用时,我该怎么做才能解决它。

谢谢,非常感谢任何输入。

**编辑拼写

3 个答案:

答案 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”事件来调用这个函数,而不是编写一个脚本来调用它。