Я пытаюсь следовать учебному пособию по пользовательскому модулю на http://dojotoolkit.org/book/dojo-book-0-9/part-3-programmatic-dijit-and-dojo/modules-and-namespaces/creating-your-own-modul
У меня локальное развертывание dojo на http://localhost:8081/dojo-1.3.2/dojo/dojo.js
Для моего пользовательского модуля я создал следующий файл JavaScript в http://localhost:8081/dojo-1.3.2/explosive/space/Modulator.js:
dojo.provide("explosive.space.Modulator");
dojo.declare("explosive.space.Modulator",null,{
bob:1
});
На моей html-странице есть следующее:
<script type="text/javascript" src="http://localhost:8081/dojo-1.3.2/dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("explosive.space.Modulator");
</script>
И когда я открываю свой сайт в Firefox, я получаю сообщение об ошибке:
Ошибка: не удалось загрузить
'Explosive.space.Modulator'; прошлой
пытался
»../explosive/space/Modulator.js'
Есть идеи, что я делаю не так?
РЕДАКТИРОВАТЬ: после дополнительного тестирования кажется, что код работает в режиме совместимости IE8 и IE8, но не в Firefox, Chrome или Opera.
EDIT2: мой HTML-файл находился в другом домене, но я не думал, что это должно иметь какое-то значение. Прочитав комментарий Сета (спасибо Сету!), Я попробовал его обоими способами.
У меня есть два экземпляра tomcat, один на порту 8080 и один на порту 8081. Я поместил index.htm в обоих экземплярах и запустил их оба.
http://localhost:8081/test/index.htm работает как в FF, так и в IE. http://localhost:8080/test/index.htm не работает должным образом в FF, но работает в IE.
Показать XmlHTTPRequests показывает, что FF выполняет вызов "GET http://localhost:8081/dojo-1.3.2/explosive/space/Modulator.js", который по какой-то причине возвращается с пустым ответом.
Вот весь мой код для index.htm, если это поможет.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>Create Map</title>
<script type="text/javascript" src="http://localhost:8081/dojo-1.3.2/dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("explosive.space.Modulator");
function init(){
var eludiumFuel36 = new explosive.space.Modulator();
alert(eludiumFuel36.bob);
}
dojo.addOnLoad(init);
</script>
</head>
<body class="tundra">
<h1>Hello World!</h1>
</body>
</html>