Changeset 741 for trunk


Ignore:
Timestamp:
02/15/07 22:48:30 (13 years ago)
Author:
ray
Message:

Ticket #955 DOMwalk getHTML outputs empty attribute with value "true" instead of attribute name

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/GetHtml/DOMwalk.js

    r725 r741  
    5252}; 
    5353 
     54Xinha.emptyAttributes = " checked disabled ismap readonly nowrap compact declare selected defer multiple noresize noshade "; 
     55 
    5456Xinha.getHTMLWrapper = function(root, outputRoot, editor, indent) 
    5557{ 
     
    131133         
    132134        for ( i = 0; i < attrs.length; ++i ) 
    133         { 
     135        {if (root.tagName.toLowerCase() == 'hr') dump(a); 
    134136          var a = attrs.item(i); 
    135           if (typeof a.nodeValue != 'string') continue; 
     137          if (typeof a.nodeValue == 'object' ) continue; // see #684 
     138          if (root.tagName.toLowerCase() == "input"  
     139              && root.type.toLowerCase() == "checkbox"  
     140              && a.nodeName.toLowerCase() == "value" 
     141              && a.nodeValue.toLowerCase() == "on")  
     142          { 
     143            continue; 
     144          } 
    136145          if ( !a.specified  
    137146            // IE claims these are !a.specified even though they are.  Perhaps others too? 
    138             && !(root.tagName.toLowerCase().match(/input|option/) && a.nodeName == 'value')                 
     147            && !(root.tagName.toLowerCase().match(/input|option/) && a.nodeName == 'value') 
    139148            && !(root.tagName.toLowerCase().match(/area/) && a.nodeName.match(/shape|coords/i))  
    140149          ) 
     
    154163          } 
    155164          var value; 
    156           if ( name != "style" ) 
     165          if ( Xinha.emptyAttributes.indexOf(" "+name+" ") != -1) 
     166          { 
     167            value = name; 
     168          } 
     169          else if ( name != "style" ) 
    157170          { 
    158171            // IE5.5 reports 25 when cellSpacing is 
     
    214227        } 
    215228        //IE fails to put style in attributes list & cssText is UPPERCASE 
    216         if (  Xinha.is_ie && root.style.cssText ) 
     229        if ( Xinha.is_ie && root.style.cssText ) 
    217230        { 
    218231          html += ' style="' + root.style.cssText.toLowerCase() + '"'; 
     232        } 
     233        if ( Xinha.is_ie && root.tagName.toLowerCase() == "option" && root.selected ) 
     234        { 
     235          html += ' selected="selected"'; 
    219236        } 
    220237        if ( html !== "" ) 
     
    279296}; 
    280297 
    281 /** @see getHTMLWrapper (search for "value = a.nodeValue;") */ 
     298 
     299 
Note: See TracChangeset for help on using the changeset viewer.