具有 application/xml+xhtml 内容类型的 Dojo
Posted
技术标签:
【中文标题】具有 application/xml+xhtml 内容类型的 Dojo【英文标题】:Dojo with application/xml+xhtml content-type 【发布时间】: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。 【参考方案1】:Dojo Toolkit 1.5 即将发布(如本周)已解决此问题,但如果您发现有问题的相应 Dijit 模板,您可以将其更改为 而不会产生任何副作用。
希望对您有所帮助。
【讨论】:
现在使用Dojo 1.5,但还是和以前一样。 这很奇怪,我正在查看1.4.3和1.5的源代码,1.5的源代码没有你提到的错误。 svn.dojotoolkit.org/src/tags/release-1.4.3/dijit/form/templates/… 与 svn.dojotoolkit.org/src/tags/release-1.5.0/dijit/form/templates/…。如您所见, 在 1.5 版本中不存在。 实际上,ValidationTextBox 确实格式错误。它有这个 sn-p: /dex="-1" readOnly waiRole/ 它应该在哪里: /dex="-1" readonly="readonly" waiRole/ 注意关于只读的部分。【参考方案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,或者您需要提交错误并等待修复。以上是关于具有 application/xml+xhtml 内容类型的 Dojo的主要内容,如果未能解决你的问题,请参考以下文章
当我想在zf2客户端代码中使用“application / json”时,接受请求标头是“text / html,application / xhtml ...(etc)”