【问题标题】:Dojo with application/xml+xhtml content-type具有 application/xml+xhtml 内容类型的 Dojo
【发布时间】:2010-07-19 23:56:52
【问题描述】:

如何让 Dojo Dijits(目前为 1.5.0)以应用程序/xml+xhtml 的形式使用 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。

【问题讨论】:

  • Dojo - XHTML validation ?的可能重复
  • FWIW,在 1.5 中,Dijit 似乎修复了模板中的所有 XHTML 验证。另外值得指出的是,Dojo 1.4.3/1.5 完全兼容 XHTML,Dijit 库是这里的罪魁祸首。
  • 在 Dojo 1.5 中仍然不能作为 application/xml+xhtml 工作。
  • 您使用的是什么类型的构建?您正在执行什么设置来生成此错误?您使用的是什么服务器端技术?
  • 使用来自 Google CDN 的最新 1.5,设置就像
    一样简单。 SS 无关紧要,因为 JavaScript 是前端,但 PHP。

标签: javascript xhtml dojo mime-types xhtml-1.1


【解决方案1】:

Dojo Toolkit 1.5 即将发布(如本周)已解决此问题,但如果您发现有问题的相应 Dijit 模板,您可以将其更改为
而不会产生任何副作用。

希望对您有所帮助。

【讨论】:

【解决方案2】:

如果您提供自己的构建,我询问了服务器端。无论如何,我知道你不想做单独的补丁和重建,但我认为有一个解决方案你可以“打补丁”但不必重建。由于构建将字符串内部化到函数构造函数中,因此您可以使用扩展功能对其进行更改。在这种情况下,对于ValidationTextBox,你可以这样做

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

这将使 dijit.form.ValidationTextBox 的所有未来实例化都使用新的模板字符串。虽然这可能并不理想,但它可能是您在不重建整个事物的情况下解决此问题的唯一方法。可能是某种形式,

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

祝你好运。

【讨论】:

    【解决方案3】:

    在 xhtml 中你应该有

    <br/>
    

    <br></br>
    

    但我很好奇:谁需要 xhtml 以及为了什么?

    【讨论】:

    • Dojo 正在生成这个,而不是我。
    • 因此您需要修复生成无效 X(HT)?ML 的 Dojo,或者您需要提交错误并等待修复。
    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 2011-08-15
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    相关资源
    最近更新 更多