Frage

Ich versuche, einen Fehler in einem Rich-Text-Editor zu beheben Ich verwende, die <embed> Tags verursacht, ohne ihre End-Tag (die Schrauben der Ausgang völlig) eingefügt werden. Ich habe das Problem auf diese Operation getrennt:

// body is a <body> tag
body.innerHTML = '<embed src="http://example.com/whatever"></embed>';

Keine Lust Code, nur Firefox innerHTML Zuordnung. Sie sollten wie so den Fehler in Firebug zu duplizieren fähig sein:

>>> document.body.innerHTML = "<embed></embed>"
"<embed></embed>"
>>> document.body.innerHTML
"<embed>"

Gibt es eine Abhilfe für dieses? Ich brauche den Tag, aber ich kann nicht rechtfertigen, den Wiederaufbau / den gesamten Rich-Text-Editor zu ersetzen, weil ein crappy Rand Fall.

Ich kann dies wie document.createElement('embed') etwas nicht konvertieren, weil die reale Welt Eingang zu diesem Editor leicht ein paar Absätze von Text um die <embed> gewickelt umfassen können; innerHTML- ist, auf Papier, ideal für diesen Anwendungsfall, ich kann einfach nicht bekommen es mit einem <embed> zu arbeiten.

War es hilfreich?

Lösung

Dies könnte nicht eine Antwort auf das Problem sein, aber war nicht Teil einer standardisierten Version von HTML, bis HTML5, nach W3C .

Andere Tipps

Obwohl ist kein Teil eines Standard-HTML, es weitgehend umgesetzt worden ist und daher ein de-facto-Standard.

Das heißt, ich bin mit Firefox 3 (Minenfeld v3.0.0.5) und bin immer etwas unerwartet, aber ganz korrekte Funktionalität. Ich hatte erwartet, die genau HTML setzen in das Element sein ich ausgewählt, sondern habe ich clean html.

Da

<embed attribute="value"></embed>

in

<embed  attribute="value"/>

, die ein prefectly gültig geschlossene Tag ist. Es macht das gleiche auf anderen leeren Tags, wie und

Auf der dieser Seite dies in Aktion zu sehen. Die scriptless Version der Seite hat ein eingebettetes Video (youtube) innerhalb von einem hellen rosa div. Das Skript stiehlt seinen Inhalt und legt sie in den Körper als innerHTML-.

Das erinnert mich an den Problemen hat document.write / hat mit -Tags.

Liegt. nicht beantwortet SO Fragen direkt vor dem Schlafengehen.

Ich habe versucht, die folgenden in Firebug

//break up initial embed into single chunks
document.body.innerHTML = "<e"+"mbe"+"d></embed>" 

und bekam das zu zeigen, erwartet, wenn ich den Wert innerHTML- geprüft. Die Idee dabei ist, die ursprüngliche Zeichenfolge in mehrere verkettete Strings zu brechen. Dumm, aber eine mögliche Behelfslösung.

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