0

我有一个在 Web 浏览器中显示的 XML 文档,并附有样式表:

<?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 过渡文档中,我对<div contentEditable="true">Edit me >没有任何问题)</div

我什至无法在此文档中编辑 xhtml:div(在 Firefox 中);如果我能做到这一点,那可能会提供一条前进的道路。

4

3 回答 3

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

于 2009-04-06T22:46:21.063 回答
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!)。

不是一个优雅的解决方案。

于 2009-04-04T03:01:08.010 回答
0

Firefox 是少数严格执行 XHTML 规范的浏览器之一。因此,要使元素可编辑,您必须将contenteditable属性指定为true. 请注意,整个属性名称是小写的。在您的示例中,可编辑的第一个“E”大写。

应该提到的另一个怪癖是 IE(6,7,8) 的行为正好相反。要使元素在 IE 中可编辑,您必须contentEditable="true"准确添加。无论出于何种原因,contenteditable="true"(以及任何其他大小写变化)都不起作用。

于 2009-10-15T06:13:04.370 回答