Moin!
Für den Vorher/Nachher-Vergleich:
if (node.attributes.length > 0) {
for (var i=0; i<node.attributes.length; i++) {
if (node.attributes[i].specified) {
var attrib = tinyMCE._cleanupAttribute(elementValidAttribs, elementName, node.attributes[i], node);
if (attrib)
elementAttribs += " " + attrib.name + "=" + '"' + attrib.value + '"';
}
}
}
if (node.attributes.length > 0) {
for (var i=0; i<node.attributes.length; i++) {
attrName = node.attributes[i].nodeName;
attrValue = node.getAttribute(attrName);
if (attrValue !== null && attrValue !== "" && typeof(attrValue) != "object") {
var attrib = tinyMCE._cleanupAttribute(elementValidAttribs, elementName, node.attributes[i], node);
if (attrib)
elementAttribs += " " + attrib.name + "=" + '"' + attrib.value + '"';
}
}
}
Das ist eine Mischung aus molilys Vorschlägen (nicht dass ich die Kompatibilität zu IE5 brauchen würde - aber man weiß ja nie) und meinen konkreten Anforderungen. Durch das Ausschließen von "object"-Attributen (das ist nach meinen Erkenntnissen nur das style-Attribut) wird _mein_ Quelltext wie gewünscht behandelt. Die Funktion _cleanupAttribute() erledigt den Rest: Sie hat durch die Konfiguration des Editors erfahren, welche Attribute überhaupt nur zulässig sind, und filtert alle anderen Attribute (aber eben nicht style - warum auch immer) heraus.
Danke an alle, die sich um eine Lösung bemüht haben.
- Sven Rautenberg