我正在嘗試將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。我該如何做到這一點,並且我是否正確地理解了事情並做出了很好的假設?