Ignore:
Timestamp:
02/04/08 17:23:41 (12 years ago)
Author:
ray
Message:

#1150 synchronize "Remove Format" between browsers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/InternetExplorer/InternetExplorer.js

    r962 r963  
    164164    // #645 IE only saves the initial content of the iframe, so we create a temporary iframe with the current editor contents 
    165165    case 'saveas': 
    166     { 
    167166        var doc = null; 
    168167        var editor = this.editor; 
     
    248247        document.body.removeChild(iframe); 
    249248      return true; 
    250     } 
     249    break; 
     250    case 'removeformat': 
     251      var editor = this.editor; 
     252      var sel = editor.getSelection(); 
     253      var selSave = editor.saveSelection(sel); 
     254 
     255      var i, el, els; 
     256 
     257      function clean (el) 
     258      { 
     259        if (el.nodeType != 1) return; 
     260        el.removeAttribute('style'); 
     261        for (var j=0; j<el.childNodes.length;j++) 
     262        { 
     263          clean(el.childNodes[j]); 
     264        } 
     265        if ( (el.tagName.toLowerCase() == 'span' && !el.attributes.length ) || el.tagName.toLowerCase() == 'font') 
     266        { 
     267          el.outerHTML = el.innerHTML; 
     268        } 
     269      } 
     270      if ( editor.selectionEmpty(sel) ) 
     271      { 
     272        els = editor._doc.body.childNodes; 
     273        for (i = 0; i < els.length; i++)  
     274        { 
     275          el = els[i]; 
     276          if (el.nodeType != 1) continue; 
     277          if (el.tagName.toLowerCase() == 'span') 
     278          { 
     279            newNode = editor.convertNode(el, 'div'); 
     280            el.parentNode.replaceChild(newNode, el); 
     281            el = newNode; 
     282          } 
     283          clean(el); 
     284        } 
     285      }  
     286      editor._doc.execCommand(cmdID, UI, param); 
     287 
     288      editor.restoreSelection(selSave); 
     289      return true; 
     290    break; 
    251291  } 
    252292   
     
    393433Xinha.prototype.saveSelection = function() 
    394434{ 
    395   return this.createRange(this._getSelection()) 
     435  return this.createRange(this.getSelection()) 
    396436} 
    397437/**  
     
    489529Xinha.prototype.createRange = function(sel) 
    490530{ 
     531  if (!sel) sel = this.getSelection(); 
    491532  return sel.createRange(); 
    492533}; 
Note: See TracChangeset for help on using the changeset viewer.