Dojo с типом содержимого application/xml+xhtml

Как я могу заставить Dojo Dijits (1.5.0, в настоящее время) работать с XHTML как application/xml+xhtml? Работает, если отправлено как text/html, но application / xml + xhtml требуется.

Кажется, это связано с dijit.form.DatePicker и несколькими другими.

Это не вопрос проверки W3C, просто он вообще не работает.

Error: mismatched tag. Expected: </br>.
Source File: 
Line: 5, Column: 54
Source Code:
  ><div class="dijitReset dijitValidationIcon"><br></div

Выполнение JavaScript останавливается из-за этой ошибки.

Очевидно, что я могу перекомпилировать Dojo и исправить все это по отдельности, но это большая работа и не все исправляет.

Еще раз, это работает с text/html, но требуется application / xml + xhtml.

3 ответа

Решение

Я спросил о серверной части на случай, если вы обслуживаете свою собственную сборку. В любом случае, я знаю, что вы не хотите делать отдельные патчи и перестраивать, но я думаю, что есть решение, где вы можете "патчить", но не нужно перестраивать. Поскольку сборка интернализует строку в конструктор функции, вы можете изменить ее с помощью функциональных возможностей расширения. В этом случае для ValidationTextBox вы можете сделать

dijit.form.ValidationTextBox.extend({
    templateString: "<div>apple sauce</div>"
});

Это позволит получить все будущие экземпляры dijit.form.ValidationTextBox для использования новой строки шаблона. Хотя это может и не быть идеальным, но это может быть единственный способ исправить это, не восстанавливая все это. Вероятно, что-то в форме,

dojo.require("dijit.form.ValidationTextBox");
dojo.require("my.ValidationTextBoxFix");

Удачи.

Это было исправлено в предстоящем (как и на этой неделе) выпуске Dojo Toolkit 1.5, но если вы найдете соответствующий шаблон Dijit, о котором идет речь, вы можете просто изменить его на
без каких-либо побочных эффектов.

Надеюсь, это поможет.

В XHTML вы должны иметь

<br/>

или же

<br></br>

но мне любопытно: кому нужен xhtml и для чего?

Другие вопросы по тегам