首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >谷歌的托管dojox.gfx

谷歌的托管dojox.gfx
EN

Stack Overflow用户
提问于 2008-09-18 04:39:30
回答 4查看 1.3K关注 0票数 4

我使用下面的html从Google的主机加载dojo。

代码语言:javascript
复制
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("dojo", "1.1.1");</script>
<script type="text/javascript">
dojo.require("dojox.gfx");
...

此错误在请求行上显示错误,如dojox.gfx is undefined。有没有办法做到这一点,或者谷歌不支持dojox扩展?

或者,有没有其他通用主机可以用于标准dojo版本?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-09-18 05:03:44

与直接从标记引用.js文件不同(请注意,google js api也支持这一点,请参阅here),google.load不是同步的。这意味着当您的代码到达google.load时,它不会等待dojo完全加载以保持解析;它将直接转到您的dojo.require行,并且它将在那里失败,因为dojo对象将是未定义的。

解决方案(如果您不想使用direct标记)是将引用dojo的所有代码封装在start函数中,并将其设置为回调,方法是执行以下操作:

代码语言:javascript
复制
google.load("dojo", "1.1.1", {callback: start});

function start() {
    dojo.require("dojox.gfx");
    ...
}

代码语言:javascript
复制
google.setOnLoadCallback(start);
google.load("dojo", "1.1.1");

function start() {
    dojo.require("dojox.gfx");
    ...
}
票数 4
EN

Stack Overflow用户

发布于 2008-09-18 04:42:03

我相信google会成为你导入的库的命名空间。试试:google.dojo.require

噢!正如下面指出的,不要忘记使用google.setOnLoadCallback而不是直接调用你的函数。

票数 0
EN

Stack Overflow用户

发布于 2008-09-18 04:43:47

一个更好的问题是--你为什么要这样做?如果你是在你的本地主机上进行开发,那么只需要使用相对路径,如果你是在面向互联网的服务器上进行开发,那么就把dojo文件放在上面。

还有-确保你不会与same origin policy发生冲突

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/90067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档