Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Ticket #11412: changed-dom-replace-patch.diff

File changed-dom-replace-patch.diff, 1.0 kB (added by jamesho, 6 months ago)

Patch that fixes the dom.js replace method to work in FireFox / Firebug

  • src/dom.js

    old new  
    9898    content.evalScripts.bind(content).defer(); 
    9999    return element; 
    100100  }, 
    101    
     101 
    102102  replace: function(element, content) { 
    103103    element = $(element); 
    104     if (content && content.toElement) content = content.toElement(); 
     104    if (content && content.toElement) { 
     105      content = content.toElement(); 
     106      element.parentNode.replaceChild(content, element); 
     107    } 
    105108    else if (!Object.isElement(content)) { 
    106109      content = Object.toHTML(content); 
    107110      var range = element.ownerDocument.createRange(); 
    108111      range.selectNode(element); 
     112      var newContent = range.createContextualFragment(content.stripScripts()); 
     113      element.parentNode.replaceChild(newContent, element); 
    109114      content.evalScripts.bind(content).defer(); 
    110       content = range.createContextualFragment(content.stripScripts()); 
    111115    } 
    112     element.parentNode.replaceChild(content, element); 
    113116    return element; 
    114117  }, 
    115118