2014-12-22 73 views
0

我有一些代码,通过SVG img元件循环并试图换出图像内联SVG代码:无法换出img元素为SVG

(function() { 
    var el = document.querySelectorAll('img'); 
    var i; 

    for(i = 0; i < el.length; i++) { 
     var imageEl = el[i], 
      imgSrc = imageEl.src; 

     if(typeof imgSrc != 'undefined' && imgSrc.match(/\.svg$/)) { 
      var request = new XMLHttpRequest(); 
      request.open('GET', imgSrc, true); 
      request.send(); 

      request.onload = function() { 
       console.log(newImage); 
       imageEl.outerHTML = request.responseText; 
      } 
     } 
    } 

})(); 

然而,这将返回:Uncaught NoModificationAllowedError: Failed to set the 'outerHTML' property on 'Element': This element has no parent node.

我有点不确定这是为什么发生。我试图从jQuery重现replaceWith函数。

回答

0

我用做异步虚假固定这一点,变化不大代码:

(function() { 
    var el = document.querySelectorAll('img'); 
    var i; 

    for(i = 0; i < el.length; i++) { 
     var imageEl = el[i], 
      imgSrc = imageEl.src; 

     if(typeof imgSrc != 'undefined' && imgSrc.match(/\.svg$/)) { 
      var request = new XMLHttpRequest(); 

      request.onreadystatechange = function() { 
       if (request.readyState == 4 && request.status == 200) { 
        imageEl.outerHTML = request.responseText; 
       } 
      } 

      request.open('GET', imgSrc, false); 
      request.send(); 
     } 
    } 

})();