Javascript 无法为SVG交换img元素
我有一些代码在SVGJavascript 无法为SVG交换img元素,javascript,ajax,Javascript,Ajax,我有一些代码在SVGimg元素中循环,并尝试将图像替换为内联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 != 'undefi
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;
}
}
}
})();
(函数(){
var el=document.querySelectorAll('img');
var i;
对于(i=0;i
但是,这将返回:Uncaught nomodificationlowerError:未能在“Element”上设置“outerHTML”属性:此元素没有父节点。
我有点不确定为什么会发生这种情况。我试图从jQuery中复制
replaceWith
函数 我通过使用make async false修复了这个问题,并稍微更改了代码:
(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();
}
}
})();
(函数(){
var el=document.querySelectorAll('img');
var i;
对于(i=0;i