2013-04-15 3 views
0

Я использую некоторые ссылки CDN в файле, скопированном непосредственно из учебника Dojo. Я не могу понять, почему это не сработает. Когда вы нажмете «Показать меня», появится диалог. но части диалога видны только на странице, и кнопка ничего не делает.HTML-файл с Dojo отказывается работать с моей локальной машины

<!DOCTYPE html> 
<html > 
<head> 

<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.7.4/dijit/themes/claro/claro.css" type="text/css" rel="stylesheet" /> 

<script>dojoConfig = {parseOnLoad: true}</script> 
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.7.4/dojo/dojo.js" 
      data-dojo-config="async: true"></script> 

<script> 
require(["dijit/Dialog", "dijit/form/TextBox", "dijit/form/Button"]); 
</script> 
</head> 
<body class="claro"> 
<div data-dojo-type="dijit/Dialog" data-dojo-id="myDialog" title="Name and Address"> 
<table class="dijitDialogPaneContentArea"> 
    <tr> 
     <td><label for="name">Name:</label></td> 
     <td><input data-dojo-type="dijit/form/TextBox" name="name" id="name"></td> 
    </tr> 
    <tr> 
     <td><label for="address">Address:</label></td> 
     <td><input data-dojo-type="dijit/form/TextBox" name="address" id="address">  </td> 
    </tr> 
</table> 

<div class="dijitDialogPaneActionBar"> 
    <button data-dojo-type="dijit/form/Button" type="submit" id="ok">OK</button> 
    <button data-dojo-type="dijit/form/Button" type="button" data-dojo-props="onClick:function(){myDialog.hide();}" 
      id="cancel">Cancel</button> 
</div> 
</div> 

<button data-dojo-type="dijit/form/Button" type="button" onClick="myDialog.show();"> 
Show me! 
</button> 
</body> 
</html> 

ответ

0

Сначала у вас был «http:», отсутствующий во второй загрузке CDN. И тогда кажется, что каким-то образом файлы диалога dijit не загружаются ...! Вы можете загрузить их вручную ИЛИ вы можете переключить версию додзе с 1.7.4 до 1.8 (я бы посоветовал это), загрузив 1.8 файла &, тогда он должен работать. Вот код:

<!DOCTYPE html> 
<html > 
<head> 

<link href="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dijit/themes/claro/claro.css" type="text/css" rel="stylesheet" /> 

<script>dojoConfig = {parseOnLoad: true}</script> 
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" 
      data-dojo-config="async: true"></script> 

<script> 
require(["dijit/Dialog", "dijit/form/TextBox", "dijit/form/Button"]); 
</script> 
</head> 
<body class="claro"> 
<div data-dojo-type="dijit/Dialog" data-dojo-id="myDialog" title="Name and Address"> 
<table class="dijitDialogPaneContentArea"> 
    <tr> 
     <td><label for="name">Name:</label></td> 
     <td><input data-dojo-type="dijit/form/TextBox" name="name" id="name"></td> 
    </tr> 
    <tr> 
     <td><label for="address">Address:</label></td> 
     <td><input data-dojo-type="dijit/form/TextBox" name="address" id="address">  </td> 
    </tr> 
</table> 

<div class="dijitDialogPaneActionBar"> 
    <button data-dojo-type="dijit/form/Button" type="submit" id="ok">OK</button> 
    <button data-dojo-type="dijit/form/Button" type="button" data-dojo-props="onClick:function(){myDialog.hide();}" 
      id="cancel">Cancel</button> 
</div> 
</div> 

<button data-dojo-type="dijit/form/Button" type="button" onClick="myDialog.show();"> 
Show me! 
</button> 
</body> 
</html> 
+0

мне удалось запустить локальные файлы с помощью ссылки CDN для 1.8. – user2219915

2

Вы всегда должны использовать веб-сервер, даже если вы просматриваете его локально. Он просто не будет запускаться из вашей локальной файловой системы.

Запустите исходный код с веб-сервера, а не из файловой системы, даже если веб-сервер работает на вашей машине разработки. Обработка браузером HTTP-запросов из локальной файловой системы является более ограничительной, чем с веб-сервера, даже когда она работает на той же машине . Для получения согласованных результатов вы всегда должны запускать Dojo с любого веб-сервера HTTP (Apache, nginx, Tomcat, IIS, Jetty и т. Д.).

замечание Лукиана о пропавших без вести HTTP :, что это не проблема:

Вы также можете загрузить Dojo из CDN. Это полезно для быстрого использования Dojo, так как он не требует, чтобы вы разместили свою собственную копию Dojo. Во многих наших уроках вы заметите, что мы показываем URL-адреса без протокола, например, . , Это позволяет использовать Dojo в приложениях http и https без корректировки URL-адреса. Для получения дополнительной информации, ознакомьтесь с Dojo CDN Аркадам

См: Dojo Start

+0

Мне сказали, что мне действительно нужно будет бежать с сервера, если я пишу свои собственные виджеты. То, что я делаю, не сложно, но сейчас я должен работать в доджо 1.7 и без сервера (ограничения работы). Если бы это было до меня, я бы сделал все это в jQuery, и сервер был бы спорным вопросом. – user2219915

+1

вам не нужно использовать локальный веб-сервер для запуска dojo на локальном компьютере! –

Смежные вопросы