A
Anonimous
Добрый день, коллеги!
Впервые использую Dojo. У меня возник вопрос. Я имею приложение, которое используется только в клиенте Notes. В этом приложении есть форма, а на ней используется объект WebBrowser. При создании документа на форме в этом браузере JavaScript -м рисуется таблица, в которую вводятся данные. Мне надо уменьшить размер кода(чтобы не прописывать каждую функцию ручками). Попытка использовать jQuery не привела ни к чему, так как эта библиотека, видимо, работает только в браузере, а приложение не для веб.
Пытаюсь теперь использовать Dojo библиотеку, добавленную в ресурсы File, как файл js.
На форме пытаюсь вызвать и через слои, и через HTML Header кодом
"<script type=\"text/javascript\" src=\"/"+dbpath +"/data/domino/js/dojo-1.4.3/dojo/dojo.js\" djConfig=\"parseOnLoad:true\"></script>"
или
dbpath := @ReplaceSubstring(@Subset(@DbName; -1); "\\"; "/");
"<script src=\"/"+dbpath+"$files/dojo.js\"></script>"
и непосредственно перед самим javascript, который находится в одном из Sub в разделе формы Declaraions
<script type="text/javascript" src="<явный путь к базе>$files/dojo.js" djConfig="parseOnLoad:true, isDebug:false"></script>
а потом пытаюсь выполнить это для теста
<script type="text/javascript">
var init = function(){
alert(1243);
};
dojo.addOnLoad(init);
dojo.require("dijit.Dialog");
dojo.require("dijit.form.Button");
function Test()
{
dojo.byId("testcontent").innerHTML = "<button dojoType=\"dijit.form.Button\" id=\"myButton2\" onClick=\"alert(123)\"> New BUTTON </button>";
}
</script>
что-то там, потом
<div id="testcontent"
<p>I am the Content of div id="testcontent".</p>
</div>
<button dojoType="dijit.form.Button" id="myButton"
onClick="Test()">
Add New Button
</button>
</body></html>
Ели путь указываем в HTML Header, кнопка на форме появляется, но при ее нажатии код не выполняется. А если в Sub прописываем, то вообще форма пустая.
Скажите, пожалуйста, это я что-то делаю не так или Dojo только для Веб-интерфейса? И есть ли еще способы сократить код на javascript в данном случае, чтобы не прописывать каждую функцию?
Заранее спасибо
Впервые использую Dojo. У меня возник вопрос. Я имею приложение, которое используется только в клиенте Notes. В этом приложении есть форма, а на ней используется объект WebBrowser. При создании документа на форме в этом браузере JavaScript -м рисуется таблица, в которую вводятся данные. Мне надо уменьшить размер кода(чтобы не прописывать каждую функцию ручками). Попытка использовать jQuery не привела ни к чему, так как эта библиотека, видимо, работает только в браузере, а приложение не для веб.
Пытаюсь теперь использовать Dojo библиотеку, добавленную в ресурсы File, как файл js.
На форме пытаюсь вызвать и через слои, и через HTML Header кодом
"<script type=\"text/javascript\" src=\"/"+dbpath +"/data/domino/js/dojo-1.4.3/dojo/dojo.js\" djConfig=\"parseOnLoad:true\"></script>"
или
dbpath := @ReplaceSubstring(@Subset(@DbName; -1); "\\"; "/");
"<script src=\"/"+dbpath+"$files/dojo.js\"></script>"
и непосредственно перед самим javascript, который находится в одном из Sub в разделе формы Declaraions
<script type="text/javascript" src="<явный путь к базе>$files/dojo.js" djConfig="parseOnLoad:true, isDebug:false"></script>
а потом пытаюсь выполнить это для теста
<script type="text/javascript">
var init = function(){
alert(1243);
};
dojo.addOnLoad(init);
dojo.require("dijit.Dialog");
dojo.require("dijit.form.Button");
function Test()
{
dojo.byId("testcontent").innerHTML = "<button dojoType=\"dijit.form.Button\" id=\"myButton2\" onClick=\"alert(123)\"> New BUTTON </button>";
}
</script>
что-то там, потом
<div id="testcontent"
<p>I am the Content of div id="testcontent".</p>
</div>
<button dojoType="dijit.form.Button" id="myButton"
onClick="Test()">
Add New Button
</button>
</body></html>
Ели путь указываем в HTML Header, кнопка на форме появляется, но при ее нажатии код не выполняется. А если в Sub прописываем, то вообще форма пустая.
Скажите, пожалуйста, это я что-то делаю не так или Dojo только для Веб-интерфейса? И есть ли еще способы сократить код на javascript в данном случае, чтобы не прописывать каждую функцию?
Заранее спасибо