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 и для чего?