小编xen*_*tia的帖子

带有Unicode字符的SVG文本元素

首先 - 对问题的简短描述.我编写了一个JavaScript函数来将一些文本标签放在SVG画布中.这里是:

function set_label(x,y,title)
{
 var newTitle = document.createElementNS(svgNS,"text");
 newTitle.setAttributeNS(null,"x",x);
 newTitle.setAttributeNS(null,"y",y);
 newTitle.setAttributeNS(null,"font-size","17px");
 newTitle.setAttributeNS(null,"font-family","WinGreek");      
 var textNode = document.createTextNode(title);
 newTitle.appendChild(textNode);
 document.getElementById("viewport").appendChild(newTitle);   
}
Run Code Online (Sandbox Code Playgroud)

由于我的项目积分,我必须使用希腊字体.所以,我称之为功能:

set_label (10,50,'Qitos') 
Run Code Online (Sandbox Code Playgroud)

这将显示Ktitos标签 - 没问题.

但是 - 当我尝试这样打电话时:

set_label (10,50,'QamÚraj')
Run Code Online (Sandbox Code Playgroud)

甚至更糟:

set_label (10,50,'Θαρσανδαλα')
Run Code Online (Sandbox Code Playgroud)

这必须显示Θαρσανδαλα标题形成全部来自特殊字符 - 问题累积 - utf-8符号出现像我写它 - 与代码:(

这里在其他类似的问题的一些研究,我发现,如果我转换UTF-8码ESC序列,如\ U00B0 - 这必须解决这个问题,但是... - 我无法弄清楚它是如何做到这一点, - 如何如果特殊字符在字符串的中间 - 就像第二个例子那样做

javascript unicode svg

13
推荐指数
2
解决办法
2万
查看次数

当viewbox为负值时,svg鼠标事件出现问题

我使用 SVG 来绘制地理地图。但是当视图框具有负值时 - 鼠标事件不起作用。请回顾一下下面的小提琴:

<svg 
	id="svg" class="mapNavSVG"
	width="100%" 
	viewBox="27.7333333 -43.2233334 0.2183334 0.0566667"
	preserveAspectRatio="xMidYMid meet" 
	xmlns="http://www.w3.org/2000/svg" 
	xlink="http://www.w3.org/1999/xlink" 
	ev="http://www.w3.org/2001/xml-events" 	
	shape-rendering="geometricPrecision"
	>
  <rect x="27.7333333" y="-43.2233334" width="0.2183334" height="0.0566667" style="fill:#0059b3;" />
  <rect onClick="alert('Test!');" x="27.9408" y="-43.1944975" width="0.006" height="0.006" style="fill:yellow;" />
  </svg>
Run Code Online (Sandbox Code Playgroud)

值是真实的 GPS 坐标。正如您所看到的 - 当单击黄色矩形时 - 什么也没有发生。

先感谢您。

更新:2018 年 1 月 8 日,经过一些评论和其他研究后,我发现该问题的原因是实数(非整数)很小。在 Chrome 中,问题已得到解决,但在 Firefox 中,问题在版本 64 中仍然存在,即使bugzilla 中有问题日志。对我来说缩放地图中的所有 SVG 元素太困难了,因为我是从 GIS 软件获取它们的。感谢大家的帮助。

svg

1
推荐指数
1
解决办法
396
查看次数

标签 统计

svg ×2

javascript ×1

unicode ×1