Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SVG中换行或查找软连字符<;文本>;_Javascript_D3.js_Svg_C3.js_Hyphenation - Fatal编程技术网

Javascript 在SVG中换行或查找软连字符<;文本>;

Javascript 在SVG中换行或查找软连字符<;文本>;,javascript,d3.js,svg,c3.js,hyphenation,Javascript,D3.js,Svg,C3.js,Hyphenation,我有一个长标签的c3图表。使用“多行”参数将线包裹在可用空间的末端,而不是正交正确的点。因此,城镇名称“Kroppenstedt”对该线来说有点太长,导致: <tspan>Kroppensted</tspan> <tspan>t</tspan> 所以我不能像其他问题中建议的那样使用indexOf()或replace()。我只能在记录tspan元素时看到软包装,作为SVG元素,它不提供字符串方法 SVG foreignObject似乎并没有在所有浏

我有一个长标签的c3图表。使用“多行”参数将线包裹在可用空间的末端,而不是正交正确的点。因此,城镇名称“Kroppenstedt”对该线来说有点太长,导致:

<tspan>Kroppensted</tspan>
<tspan>t</tspan>
所以我不能像其他问题中建议的那样使用indexOf()或replace()。我只能在记录tspan元素时看到软包装,作为SVG元素,它不提供字符串方法

SVG foreignObject似乎并没有在所有浏览器中得到支持,去年,我们网站上大约20%的用户仍然使用IE,所以这种解决方案并不理想

我是否忽略了在SVG元素中获得正确连字符化的方法?有没有其他方法可以找到软包装

以下是我迄今为止所做的尝试:

jQuery(函数($){
$('g.tick text tspan')。连字符('de');
});
d3.选择全部('.c3-axis-x.勾选文本tspan')
.每个(功能(d,i){
var lineLength=60;
var self=d3.选择(此项);
console.log(this);//这是我看到软包装的唯一方法
var esc=$(this.html().replace(//­;/g,//\u00AD/);//或任何其他替换字符
$(this).html(esc);
var break_chars=[“­;”、“”];//或//\u00AD/
var wrap_pos=[];
$(中断字符)。每个(函数(){
var start=0;
while(开始!=-1){
var pos=text.indexOf(这个,开始);
如果(位置!=-1){
开始=位置+1;
包裹位置推动(位置);
}否则{
开始=-1
}
}
});
//找到行尾前的最后一个断点位置并创建

//一个新的tspan,所有文本都在它后面
你试过了吗?它声称可以进行断字。谢谢,我会看一看!虽然我没有看到任何特定于语言的模式,这让我怀疑它是否适用于英语以外的语言。
<tspan>Kroppen-</tspan>
<tspan>stedt</tspan>
$(element).html(); //returns the string without shy
element.innerHTML; //returns the string without shy; also true for outerHTML, textContent