Проблема с додзё dijit.form.ValidationTextBox - PullRequest
3 голосов
/ 07 сентября 2008

Следующий код XHTML не работает:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="/dojotoolkit/dijit/themes/tundra/tundra.css" />
    <link rel="stylesheet" type="text/css" href="/dojotoolkit/dojo/resources/dojo.css" />
    <script type="text/javascript" src="/dojotoolkit/dojo/dojo.js" djConfig="parseOnLoad: true" />
    <script type="text/javascript">
        dojo.require("dijit.form.ValidationTextBox");
        dojo.require("dojo.parser");
    </script>
</head>

<body class="nihilo">
    <input type="text" dojoType="dijit.form.ValidationTextBox" size="30" />
</body>

</html>

В Firebug я получаю следующее сообщение об ошибке:

[Exception ... "Компонент возвратил код ошибки: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMNSHTMLElement.innerHTML] "nsresult: Расположение "0x80004003 (NS_ERROR_INVALID_POINTER)": "кадр JS :: http://localhost:21000/dojotoolkit/dojo/dojo.js :: аноним :: линия 319 "данные: нет] http://localhost:21000/dojotoolkit/dojo/dojo.js Линия 319

Есть идеи, что не так?

Ответы [ 6 ]

2 голосов
/ 08 сентября 2008

Проблема выглядит как конец файла ...

  • Если я назову файл test2.html , все работает.
  • Если я назову файл test2.xhtml , я получу сообщение об ошибке.

Различие между двумя швами в качестве Content-Type в заголовке ответа от apache.

  • Для .html это Content-Type text / html; кодировка = ISO-8859-1
  • Для .xhtml это приложение Content-Type / xhtml + xml
1 голос
/ 26 ноября 2008

Проблема заключается в том, что innerHTML - это неофициальное свойство, которое не является частью спецификаций W3C и, следовательно, может работать или не работать в зависимости от браузера, особенно когда страница отображается как файл XHTML, а не как файл HTML. См. здесь и здесь .

1 голос
/ 07 сентября 2008

Куда вы импортируете dojo.js:

<script type="text/javascript" src="/dojotoolkit/dojo/dojo.js" djConfig="parseOnLoad: true"/>

Должно быть:

<script type="text/javascript" src="/dojotoolkit/dojo/dojo.js" djConfig="parseOnLoad:true"></script>

Развлекайся с додзё, он может делать классные вещи.

Брайан Джанфоркаро

0 голосов
/ 14 ноября 2008

На странице Dojo Trac есть несколько похожих билетов:

http://trac.dojotoolkit.org/search?q=xhtml+ns_error&noquickjump=1&ticket=on

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

0 голосов
/ 08 сентября 2008

Вы уверены, что указали правильный путь в тегах скрипта?

Я разместил это в сети, проверь.

Слева - пародированный ввод Dojo, справа - обычный старый ввод. Link

Я на OS X, использую Firefox 3.0.1. Я не получаю ошибок под firebug.

0 голосов
/ 07 сентября 2008

Ну, что делает dojo.js в строке 319?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...