Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用名称空间回调函数动态加载google maps api v3_Javascript_Jquery_Asynchronous_Google Maps Api 3 - Fatal编程技术网

Javascript 使用名称空间回调函数动态加载google maps api v3

Javascript 使用名称空间回调函数动态加载google maps api v3,javascript,jquery,asynchronous,google-maps-api-3,Javascript,Jquery,Asynchronous,Google Maps Api 3,最近,我在惰性加载/动态加载google maps api v3时遇到了以下问题:为了检查api是否已完全加载,我遵循了google文档页面上的。在全局范围内使用普通函数回调名称(如&callback=initialize)可以正常工作。对于特定命名空间内的函数回调也可以正常工作,如&callback=namespace.initialize 现在,我的函数被放置在Namespace.foo[0]下。初始化(“Namespace”和“foo”属于object类型)。现在的问题是我无法正确访问此函

最近,我在惰性加载/动态加载google maps api v3时遇到了以下问题:为了检查api是否已完全加载,我遵循了google文档页面上的。在全局范围内使用普通函数回调名称(如&callback=initialize)可以正常工作。对于特定命名空间内的函数回调也可以正常工作,如&callback=namespace.initialize

现在,我的函数被放置在Namespace.foo[0]下。初始化(“Namespace”和“foo”属于object类型)。现在的问题是我无法正确访问此函数。我尝试了几种构建回调字符串的方法,下面列出了每种方法,其中firebug告诉我的任何方法都不起作用:

&callback=Namespace.foo[0].initialize
Firebug: NetworkError: 403 Forbidden - <http://maps.googleapis.com/maps/api/js?v=3...&callback=Namespace.foo[0].initialize...>

&callback=Namespace.foo.0.initialize
Firebug: missing ; before statement
Firebug: [Break On This Error] window.Namespace.foo[0].initialize()

&callback=Namespace.foo%5B0%5D.initialize
Firebug: NetworkError: 403 Forbidden - <http://maps.googleapis.com/maps/api/js?v=3...&callback=Namespace.foo[0].initialize...>
&callback=Namespace.foo[0]。初始化
Firebug:网络错误:403禁止-
&回调=Namespace.foo.0.initialize
萤火虫:失踪;声明前
Firebug:[在此错误时中断]窗口。命名空间。foo[0]。初始化()
&callback=Namespace.foo%5B0%5D.initialize
Firebug:网络错误:403禁止-
我感谢每一个提示和/或解决方案

背景信息:我所做的可能也很有趣。脚本动态地将html、css、数据和google maps api加载到外部网页(在web小部件中)。现在,我使用jQuery的延迟对象对不同的include进行排队,比如首先加载css/javascript/html,然后接收数据,最后在先前加载的结构中设置GoogleMap。Deferred对象的性能比使用回调处理不同的步骤要好得多(而且容易得多!),但是当jQuery.getScript方法完成(加载google maps api)时,会触发成功事件并返回Deferred.resolve。太糟糕了,这可能只是处理身份验证(通过客户端密钥),然后异步加载google maps main.js。这非常糟糕,因为我需要等待api完全加载


foo[0]引用的是数组还是对象?如果是后者,您可以只执行Namespace.foo.0.initialize吗?它引用了一个对象。对象“foo”被另一个对象动态填充;0来自jQuery。每个函数都提供一个数字键(以及回调函数中的值),我用它来创建foo[0]-foo[n]。顺便说一句。看看例子#2:事实上,我确实尝试过对Namespace.foo.0.initialize进行初始化,但它不起作用。您能否将回调函数分配给另一个变量,并将其传递给Google?e、 g.var myFunction=namespace.foo[0]。初始化;foo[0]引用的是数组还是对象?如果是后者,您可以只执行Namespace.foo.0.initialize吗?它引用了一个对象。对象“foo”被另一个对象动态填充;0来自jQuery。每个函数都提供一个数字键(以及回调函数中的值),我用它来创建foo[0]-foo[n]。顺便说一句。看看例子#2:事实上,我确实尝试过对Namespace.foo.0.initialize进行初始化,但它不起作用。您能否将回调函数分配给另一个变量,并将其传递给Google?e、 g.var myFunction=namespace.foo[0]。初始化;