Dojo:动态和同步加载跨域脚本

时间:2012-03-02 09:15:30

标签: javascript google-maps dojo synchronization cross-domain

我正在开发一个项目,我必须使用dojo(我正在做一个自定义小部件)和google map api(v3)

由于某些技术原因,我必须通过我的js文件包含谷歌地图api,而不是通过我的html文件,所以我不能使用

<script type='text/javascript' src='http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places'></script>

负载必须同步完成。

我尝试了一些东西,首先使用

添加脚本
document.write("<script type='text/javascript' src='http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places'></script>");

但这不起作用,我得到一个空白页面,使用firebug我可以看到面板“网络”正在清除,页面无限加载谷歌地图api脚本。

我想我不能使用dojo.io.script(它允许发出跨域请求),因为我们不能用dojo.io.script发出同步请求

任何帮助将不胜感激;)

2 个答案:

答案 0 :(得分:1)

好吧,解决方案是使用谷歌地图回调:

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places&callback=mapLoaded";
document.body.appendChild(script);

然后创建执行代码

的函数“mapLoaded”

感谢那些花时间回答我的人

答案 1 :(得分:0)

您仍然可以使用dojo.io.script。它不必是同步的。 maps API采用c