Javascript Safari无法将SVG元素替换为:NoModificationLowerError:无法修改该对象
我想将所有SVG的Javascript Safari无法将SVG元素替换为:NoModificationLowerError:无法修改该对象,javascript,html,svg,safari,foreignobject,Javascript,Html,Svg,Safari,Foreignobject,我想将所有SVG的元素替换为foreignObject,它在基于FireFox和Chromium的浏览器中运行良好,但在Safari中失败 MWE: HTML/SVG <!DOCTYPE html> <html lang="en"> <body> <svg> <rect id="rect1" width="100" height="100"
元素替换为foreignObject
,它在基于FireFox和Chromium的浏览器中运行良好,但在Safari中失败
MWE:
HTML/SVG
<!DOCTYPE html>
<html lang="en">
<body>
<svg>
<rect id="rect1" width="100" height="100" />
</svg>
</body>
</html>
JavaScript
let myRect = document.getElementById("rect1")
myRect.outerHTML = myRect.outerHTML.replace("<rect", "<foreignObject").replace("</rect>", "</foreignObject>")
let myRect=document.getElementById(“rect1”)
myRect.outerHTML=myRect.outerHTML.replace(“替换字符串非常容易出错
复制属性后替换元素..
设svg=svg;
svg.querySelectorAll(“rect”).forEach(rect=>{
设obj=document.createElements(“http://www.w3.org/2000/svg“,”外国物体“);
[…rect.attributes].map(({name,value})=>obj.setAttribute(name,value));
矩形替换为(obj);
});
console.log(SVG.outerHTML);
替换字符串非常容易出错
复制属性后替换元素..
设svg=svg;
svg.querySelectorAll(“rect”).forEach(rect=>{
设obj=document.createElements(“http://www.w3.org/2000/svg“,”外国物体“);
[…rect.attributes].map(({name,value})=>obj.setAttribute(name,value));
矩形替换为(obj);
});
console.log(SVG.outerHTML);
太棒了。谢谢!太棒了。谢谢!