作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 react js和 svg.draw.js对于在 div 中绘制 svg 元素,用户可以绘制 rect 或其他形状,他可以看到在先例 session 中绘制的形状。
为了实现最后一个功能,我将整个 svg 元素存储为字符串,这样当 ComponentDidMount() 方法被触发时,它可以将其解析为 image/svg+xml 元素,然后它可以将 svg 节点附加到 svg 根。因此,为了在 ComponentDidMount() 中尝试此解决方案,我创建了一个要附加的 rect 节点。
当我尝试附加 rect 元素时,它没有显示出来,但它存在于根元素中。
This is what I see in console, the rect element is what I have to append .
这就是 ComponentDidMount() 方法中的内容。
componentDidMount(){
/*
*
*irrilevant code*/
const scriptDraw = document.createElement("script");
scriptDraw.src = "svgDrawer.js"; //svg.draw.js
scriptDraw.setAttribute("id","drawer")
scriptDraw.async = true;
document.body.appendChild(scriptDraw);
var str = '<rect id="SvgjsRect1008" class="selected" width="124" height="89" stroke="#3399ff" stroke-width="2" fill-opacity="1" fill="#3399ff" x="236" y="160" name="dawdawad"></rect>'
var parser = new DOMParser();
var doc = parser.parseFromString(str, "image/svg+xml");
scriptDraw.addEventListener("load",function(){
var map = document.getElementById("planimetriaSVG"); //svg root
map.appendChild(doc.documentElement);
})
}
最佳答案
将命名空间属性添加到 rect 元素,以便 parseFromString 知道它应该是一个 SVG 元素,即
var str = '<rect xmlns="http://www.w3.org/2000/svg" id="SvgjsRect1008" class="selected" width="124" height="89" stroke="#3399ff" stroke-width="2" fill-opacity="1" fill="#3399ff" x="236" y="160" name="dawdawad"></rect>'
var parser = new DOMParser();
var doc = parser.parseFromString(str, "image/svg+xml");
关于javascript - 追加后矩形不可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566394/
我正在尝试获得一个按钮,按下该按钮时会改变颜色。当再次按下时,它应该变回原来的颜色。我究竟做错了什么? 我的模板中的按钮: export default { data: {
我是一名优秀的程序员,十分优秀!