Sven Rautenberg: IE-DOM vs. Moz-DOM: Property "specified"

Beitrag lesen

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