谷歌地图API,回调是对象的一个方法

Google maps API, callback is a method of object

本文关键字:一个 方法 API 回调 对象 谷歌地图      更新时间:2023-09-26

我把这里的每一行代码都去掉了,除了下面这行:

show = foo.show = function () {
    alert("test");
};

现在,如果我以这种方式运行maps API,它就可以工作了:

foo.display = function() {
    this.elem = document.getElementById('fooBox');
    var script  = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "http://maps.google.com/maps/api/js?sensor=false&callback=show";
    document.body.appendChild(script);
};

但是当我试图通过callback=foo.show调用它时,它失败了:

foo.display = function() {
    this.elem = document.getElementById('fooBox');
    var script  = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "http://maps.google.com/maps/api/js?sensor=false&callback=foo.show";
    document.body.appendChild(script);
};

唯一的错误,我可以从WebKit检查器是Uncaught TypeError: Cannot call method 'show' of undefined

我是新的谷歌地图API,但我认为方法不重要吗?我肯定在什么地方见过。我哪里做错了?

foo是否声明为var ?如果是,则全局作用域无法访问它。添加如下声明:

foo = {};
foo.show = function () {
   ...
};
...

到你的代码中,它可能会纠正这个问题。WebKit的响应表明,在调用show()时,变量foo不在作用域中。