我有一个XML文档,我正在Web浏览器中显示,并附有样式表:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/css" href="abc.css"?>
<myxml xmlns:xhtml="http://www.w3.org/1999/xhtml">
<para>I wish i was editable</para>
<xhtml:script type="text/javascript" src="abc.js"/>
</myxml>
使用xhtml名称空间声明和xhtml:script标记,我可以执行javascript。
我想要做的是使此文档内容中的任意非XHTML元素可编辑。 (实际上,它们将位于另一个命名空间中)
即使我明确添加@ contentEditable =“true”(即不使用Javascript),内容实际上也不可编辑(在Firefox 3.0.4中)。
是否可以在任何当前浏览器中编辑它? (在{XHTML 1.0 Transitional doc}中<div contentEditable="true"
&gt;编辑我</div
&gt;我没有问题
我甚至无法编辑本文档中的xhtml:div(在Firefox中);如果我能做到这一点,那可能会提供一条前进的道路。
答案 0 :(得分:1)
在Firefox 3中,@ content-editable =“true”仅使相关元素可编辑 内容类型是text / html(如果本地文件名以.html结尾,也会发生这种情况)
它不适用于内容类型app / xhtml + xml或text / xml(以.xhtml或.xml结尾的本地文件名)
我已为此记录了一项增强功能:https://bugzilla.mozilla.org/show_bug.cgi?id=486931
答案 1 :(得分:0)
如果我使用此doctype,则contentEditable适用于在html / xhtml之外的元素上(在Firefox和Chrome中测试过):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
和.html文件扩展名(而不是.xml)。
我根本不需要包含任何html元素(例如head,body,div,p)。
css未应用(如果我的xml在命名空间中,我认为这是合理的,给定doctype!)。
不是一个优雅的解决方案。
答案 2 :(得分:0)
Firefox是为数不多的严格执行XHTML规范的浏览器之一。因此,要使元素可编辑,您必须将contenteditable
属性指定为true
。请注意,整个属性名称是小写的。在您的示例中,可编辑的第一个“E”是大写的。
应该提到的另一个怪癖是IE(6,7,8)恰恰相反。要使元素在IE中可编辑,您必须完全添加contentEditable="true"
。出于某种原因,contenteditable="true"
(以及大写的任何其他变化)都不起作用。