新手道场 - 谷歌CDN问题

时间:2010-10-15 18:45:53

标签: dojo

我有一个测试jsp:

<head>
    <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js" type="text/javascript">
</script>

<script type="text/javascript"> 
dojo.require("dojo.widget.Tree"); 
dojo.require("dojo.widget.TreeSelector"); 
dojo.require("dojo.widget.TreeNode"); 
dojo.require("dojo.widget.TreeContextMenu"); 
</script> 
</head>

<body>
<div dojoType="TreeSelector" widgetId="treeSelector"></div> 
<div dojoType="Tree" widgetId="treeWidget" selector="treeSelector"toggler="wipe"> 
<div dojoType="TreeNode" widgetId="1" title="First node" isFolder="false"></div> 
<div dojoType="TreeNode" widgetId="2" title="Second node"> 
    <div dojoType="TreeNode" widgetId="2.1" title="Second node First Child"></div> 
    <div dojoType="TreeNode" widgetId="2.2" title="Second node Second Child"></div> 
</div> 
<div dojoType="TreeNode" widgetId="3" title="Third node" isFolder="false"></div> 
</div>

这不适用于任何浏览器。 我觉得这很容易,似乎dojo库没有被下载/找到? 我还需要做其他事吗?

另外,我的IDE JDeveloper报告在元素div上没有定义属性“dojoType”。     

3 个答案:

答案 0 :(得分:1)

我不确定当它不存在时默认行为是什么,但您可能需要定义一个parseOnLoad设置为true的djConfig(或直接调用解析器)。有关更多信息,请参阅以下链接:

http://docs.dojocampus.org/djConfig

http://dojocampus.org/content/2008/03/08/the-dojo-parser/

答案 1 :(得分:1)

我不得不说,这个例子看起来是从非常旧版本的dojo中获取的,但是你试图针对Dojo 1.5运行它。这很可能不会奏效。 dojo.widget自...... 0.4以来就不存在。

您对前一个答案的评论可能是正确的,原始示例中不需要parseOnLoad: true,但我也向您保证,该示例未在您附近的任何地方运行任何版本的Dojo用它来运行它。

根据您在那里看到的内容,您可能想要从这里开始:http://www.dojotoolkit.org/reference-guide/dijit/Tree.html

答案 2 :(得分:0)

按照:

你需要:

  • register for an API key(或使用直接链接),
  • 如果不使用直接链接,google.load,则需要使用onload回调推迟执行代码。

个人,我会做类似的事情:

my.html <head>部分中的

<script type="text/javascript" src="http://www.google.com/jsapi?key=MY_API_KEY_GOES_HERE"></script>
<script type="text/javascript" src="my.js"></script>
my.js 中的

google.load("dojo", "1.5", {
  uncompressed: true
});

function OnLoad() {
  /* do stuff here */
}

google.setOnLoadCallback(OnLoad);