gpt4 book ai didi

javascript - 动态添加的 tspan 在 chrome 中相对于彼此无法正确显示

转载 作者:行者123 更新时间:2023-12-03 12:29:34 25 4
gpt4 key购买 nike

我正在尝试动态显示 tspan。通常的用例是,只要添加后正确设置 dx/x 和 dy 值,就可以将其添加到行上的任何位置。

这在 Firefox (29) 中运行良好,但在 Chrome (35) 中运行不佳

当从一开始就以正确的顺序添加 tspan 时,它确实有效,但这不是真正的用例,所以我不能指望它

我创建了一个小测试页面。分三种情况:添加硬编码在 html 中的文本,动态地像真实用例一样并且动态地按顺序。在chrome的开发者工具中,DOM是完全相同的(除非我错过了什么),但只有第一种和第三种情况显示正确。

这里是 jsfiddle 示例的链接:http://jsfiddle.net/X7t2s/1/

var text = document.getElementById("textDOM");

//in the real use case this is here first
var t2 = document.createElementNS("http://www.w3.org/2000/svg","tspan");
t2.textContent = "i";
t2.setAttributeNS(null,"fill","rgb(0,0,255)");
t2.setAttributeNS(null,"dy","12pt");
t2.setAttributeNS(null,"x",0);
text.insertBefore(t2,null);

//we then add this as first
var t1 = document.createElementNS("http://www.w3.org/2000/svg","tspan");
t1.textContent = "H";
t1.setAttributeNS(null,"fill","rgb(255,0,0)");
t1.setAttributeNS(null,"dy","12pt");
t1.setAttributeNS(null,"x",0);
text.insertBefore(t1,t2);

//because t1 has been added we remove x and set dx and set dy
t2.setAttributeNS(null,"dy","0");
t2.removeAttributeNS(null,"x");
t2.setAttributeNS(null,"dx",0);

我做错了什么吗?这是 Chrome 中的一个错误吗?如果是这样,有解决方法吗?由于 SVG DOM 显示正确,是否有办法强制它重绘,以便铰链以正确的顺序显示?

提前致谢

最佳答案

是的,您似乎在 Chrome 中遇到了错误。我自己做了一些实验,发现添加和删除 <tspan> s 很不稳定。

您可能应该将此报告为错误。前往Tools->Report an issuehttps://code.google.com/p/chromium/issues/list

关于javascript - 动态添加的 tspan 在 chrome 中相对于彼此无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com