我正在尝试将dojo小部件添加到页面。因为它是一个旧的应用程序,所以我使用了dojo 1.6。该小部件在一个js文件中定义,其中包含一个HTML模板和一个定义一些额外选项的CSS文件。Dojo 1.6:仅分析一个对象
我正在使用JSP和JSPF,出于某种原因(可能是两者之间的区别?),当我将<script>
标签放入JSPF文件中时,我正在处理它们,并且在页面加载时不运行。我想我会在稍后解决这个问题,同时为了测试其他的东西,我把代码放在运行脚本标记的头文件JSP文件中。
dojo.require("x.y.z");
<div
id="testDiv"
dojoType="x.y.z" onclick="dojo.parser.parse()">abc</div>
这工作我想它的方式。有一个div,当我点击它时,它会用我定义的模板加载dojo小部件。
在JSPF文件,我把同样的div(ABC),然后我也做了类似的事情,但往上走的另一个步骤:
<div onclick="
dojo.require('x.y.z');
var n = document.createElement('div');
n.setAttribute('id', 'xyz');
n.setAttribute('dojoType', 'x.y.z');
n.setAttribute('onclick', 'dojo.parser.parse()')
n.innerHTML = 'Test';
document.body.appendChild(n);
">Click Me Please!</div>
我把这个的原因是,当我有只是ABC,这是给我下面的错误在Firebug:
Error parsing in _ContentSetter#Setter_1:13_0
Error: Could not load class 'x.y.z
Error undefined running custom onLoad code: This deferred has already been resolved
undefineddojo._scopeArgs = [undefined];
我想这是因为XYZ没有被dojo.require'd,不像JSP时,它是,因为我无法获得的JavaScript在jspf中自动运行,我写了“请点击我”,然后在onclick中进行hackishly要求同样的事情,只是为了尝试测试事情并让它们工作。
第二个想法是,我应该能够点击它,并从前面出现div。看来做需要精细和创建DIV,但后来当我点击的div它说
Tried to register widget with id==(numbers) but that id is already registered
所以我想这是因为我只是在一切dojo.parser.parse运行,它抓住了网页上已有的东西 - 我真的应该把它运用到我所做的新事物上。所以我试图弄清楚如何在dojo.parser.parse上做一件事。我发现1.8和1.7的信息,但不是1.6。我该如何做到这一点,并且我是否正确地理解了事情并做出了很好的假设?