Доступный для редактирования на узлах в XML / составном документе?

StackOverflow https://stackoverflow.com/questions/713919

Вопрос

У меня есть 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).

Можно ли отредактировать его в любом из текущих браузеров?(У меня не было никаких проблем с <div contentEditable="true"> Отредактируй меня</div> в переходном документе XHTML 1.0)

Я даже не могу отредактировать xhtml: div в этом документе (в Firefox);если бы я мог это сделать, это могло бы открыть путь вперед.

Это было полезно?

Решение

В Firefox 3 @content-editable="true" делает соответствующий элемент доступным для редактирования только в том случае, если тип содержимого - text / html (что также происходит, если локальное имя файла заканчивается на .html)

Это не работает для типов контента app / xhtml + xml или text / xml (локальные имена файлов, заканчивающиеся на .xhtml или .xml)

Я зарегистрировал улучшение для этого: https://bugzilla.mozilla.org/show_bug.cgi?id=486931

Другие советы

contentEditable работает (протестировано в Firefox и Chrome) с элементами, которые чужды html / xhtml, если я использую этот doctype:

<!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!).

Не очень элегантное решение.

Firefox - один из немногих браузеров, который строго соблюдает спецификацию XHTML.Итак, чтобы сделать элемент доступным для редактирования, вы должны указать contenteditable атрибут как true.Обратите внимание, что все имя атрибута указано в нижнем регистре.В вашем примере первая буква "Е" в editable была написана с заглавной буквы.

Еще одна особенность, о которой следует упомянуть, заключается в том, что IE (6,7,8) действует с точностью до наоборот.Чтобы сделать элемент доступным для редактирования в IE, вы ДОЛЖЕН Добавить contentEditable="true" вот именно.По какой бы то ни было причине, contenteditable="true" (а также любое другое изменение заглавных букв) не работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top