2009-04-03 3 views
0

У меня есть документ XML, что я отображающее в веб-браузере, с таблицей стилей прикрепленного:contentEditable на узлах в 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: сценарий тег, я могу выполнить JavaScript.

Что бы я хотел сделать, это сделать произвольные элементы, отличные от XHTML, в этом документе, доступным для редактирования. (На самом деле, они будут в другом пространстве имен)

Даже если я явно добавляю @ contentEditable = "true" (т.е. не прибегая к Javascript), контент на самом деле не редактируется (в Firefox 3.0.4).

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

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

ответ

1

В Firefox 3, @ содержание редактируемые = «истина» только делает соответствующий элемент редактируемый, если тип содержание текста/HTML (который также происходит, если локальное имя файла оканчивается на .html)

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

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

0

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
         "http://www.w3.org/TR/html4/loose.dtd"> 

и расширение .html файла (вместо .xml).

Мне не нужно включать какие-либо элементы html вообще (например, голова, тело, div, p).

css не применяется, хотя (если мой xml находится в пространстве имен, что, я думаю, имеет смысл, учитывая doctype!).

Не изящное решение.

0

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

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

Смежные вопросы