Frage

Ich habe ein XML-Dokument, das ich in einem Web-Browser bin angezeigt wird, mit einem Stylesheet angehängt:

<?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>

Mit der xhtml Namespace-Deklaration und xhtml. Script-Tag, kann ich Javascript ausführen

Was möchte ich tun, ist willkürlich Nicht-XHTML-Elemente in diesem Dokument Inhalt bearbeiten zu können. (Tatsächlich werden sie in einem anderen Namespace)

Auch wenn ich hinzufügen explizit @ contentEditable = "true" (dh ohne Javascript zurückgreifen), der Inhalt ist nicht eigentlich editierbare (in Firefox 3.0.4).

Ist es möglich, sie in einem der aktuellen Browser zu bearbeiten? (Ich hatte keine Probleme mit <div contentEditable="true"> Bearbeiten me</div> in einem XHTML 1.0 Transitional doc)

div in diesem Dokument (in Firefox):

Ich kann nicht einmal eine xhtml bearbeiten wenn ich das könnte, dass ein Weg in der Zukunft bieten kann.

War es hilfreich?

Lösung

In Firefox 3, @ Inhalt editierbare = "true" macht nur das entsprechende Element bearbeitet werden, wenn die Inhaltstyp text / html (was auch geschieht, wenn ein lokaler Dateiname mit .html endet)

Es funktioniert nicht für Inhaltstypen app / xhtml + xml oder text / xml (lokale Dateinamen mit .xhtml oder .xml enden)

Ich habe eine Erweiterung für diese protokolliert: https: //bugzilla.mozilla. org / show_bug.cgi? id = 486931

Andere Tipps

contentEditable funktioniert (getestet in Firefox und Chrome) auf Elemente, die HTML / XHTML-fremd sind, wenn ich dieses Doctype verwenden:

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

und eine HTML-Datei Erweiterung (statt .xml).

Ich muss keine HTML-Elemente enthalten überhaupt (zB Kopf, Körper, div, p).

CSS ist allerdings nicht angewandt (wenn mein xml in einem Namensraum ist, die ich Sinn erraten macht, angesichts der Doctype!).

Nicht eine elegante Lösung.

Firefox ist einer der wenigen Browser, die XHTML-spec streng erzwingt. Also, um ein Element bearbeitbar zu machen, müssen Sie das Attribut contenteditable als true angeben. Beachten Sie, dass die gesamte Attributnamen Kleinschreibung ist. In Ihrem Beispiel wurde die erste "E" in editierbare aktiviert.

Eine weitere Schrulle, die erwähnt werden sollte, ist, dass IE (6,7,8) handeln genau das Gegenteil. Um ein Element editierbar in IE zu machen, Sie muss hinzufügen contentEditable="true" genau. Für welchen Gründen auch immer, contenteditable="true" (sowie jede andere Variation der Kapitalisierung) funktioniert nicht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top