Javascript wheelnav.js库菜单项中的Unicode实体(使用UndertheHood raphael.js)[SVG]
因为wheelnav.js库允许程序员将菜单项定义为文本或图像。对于一个菜单元素,不能同时使用这两个元素,我需要图标+文本,我将图标编码为unicode实体,这对于很多人来说并不困难,因为我使用的是字体 不幸的是,根据我从wheelnav.js源代码中了解到的情况,在创建SVG文本节点(及其tspan子节点)时,底层raphael.js逃过了特殊字符和更改&to&;导致实体按字面显示,而不是相应的图标 我提出的唯一解决方案是将字体中的字符(图标)复制粘贴到标题字符串。它可以工作,在浏览器中我可以看到一个图标,但在我的IDE中我只看到一个矩形。Javascript wheelnav.js库菜单项中的Unicode实体(使用UndertheHood raphael.js)[SVG],javascript,svg,unicode,raphael,wheelnav.js,Javascript,Svg,Unicode,Raphael,Wheelnav.js,因为wheelnav.js库允许程序员将菜单项定义为文本或图像。对于一个菜单元素,不能同时使用这两个元素,我需要图标+文本,我将图标编码为unicode实体,这对于很多人来说并不困难,因为我使用的是字体 不幸的是,根据我从wheelnav.js源代码中了解到的情况,在创建SVG文本节点(及其tspan子节点)时,底层raphael.js逃过了特殊字符和更改&to&;导致实体按字面显示,而不是相应的图标 我提出的唯一解决方案是将字体中的字符(图标)复制粘贴到标题字符串。它可以工作,在浏览器中
这使它变得不清晰,其他开发人员无法接受,我不能期望他们在IDE中安装Font Awesome 有没有其他聪明的方法来防止wheelnav.js(raphael.js)转义特殊字符或解决我的问题
var icons = {
'key': '',
'cogs': '',
'connection': '' //copypasting character, that would work.
};
var items = [ {title: icons.key + 'Security'},
{title: icons.cogs + 'Settings'},
{title: icons.connection + 'Connection'} ];
var piemenu = new wheelnav('main_menu');
piemenu.initWheel(items.map(function(item){
return item.title;
}));
piemenu.createWheel();
它看起来是什么样子:
它应该是什么样子的:
感谢您的帮助:)您可以尝试使用JS unicode字符文本,而不是直接使用HTML实体或字符
var icons = {
'key': '\uf084',
'cogs': '\uf085',
...
};