Svg 如何获取图标的字符代码?

Svg 如何获取图标的字符代码?,svg,font-awesome,Svg,Font Awesome,我想在SVG范围内使用这些图标。我不能用普通的方法实现它,但我可以添加包含相应UTF-8字符的元素,并将字体设置为fontawesome,如下所示: <text style="font-family: FontAwesome;">\uf0ac</text> 但这当然很难看,因为我必须自己写,我的代码。如何仅从fontawesome库获取这些值?您可以避免生成这样的列表,并从fontawesome样式表中动态提取信息。包括样式表,并像往常一样设置类。e <tspan

我想在SVG范围内使用这些图标。我不能用普通的方法实现它,但我可以添加包含相应UTF-8字符的
元素,并将字体设置为fontawesome,如下所示:

<text style="font-family: FontAwesome;">\uf0ac</text>

但这当然很难看,因为我必须自己写,我的代码。如何仅从fontawesome库获取这些值?

您可以避免生成这样的列表,并从fontawesome样式表中动态提取信息。包括样式表,并像往常一样设置类。e

<tspan class="fa fa-globe"></tspan>

您可以避免生成这样的列表,并动态地从字体样式表中提取信息。包括样式表,并像往常一样设置类。e

<tspan class="fa fa-globe"></tspan>

我对问题的两种解决方法的两个答案(都是由ccprog开发的):

1。按类定义设置字符:

const getFontAwesomeIconChar = (name) => {
  var stylesheets = Array.from(document.styleSheets);
  var rules = stylesheets.map(function(ss) {
    return ss && ss.cssRules ? Array.from(ss.cssRules) : [];
  })
  rules = [].concat.apply([], rules);

  var style = rules.find(function (r) {
    return r.selectorText && r.selectorText.endsWith(name + "::before");
  }).style;
  return style.content.substr(1,1);
}
在这种方法中,我们可以这样定义元素:

<text class="fa fa-globe"></text>
但我对这种方法有一些问题,所以我开发了第二种方法

2。使用函数获取字符:

const getFontAwesomeIconChar = (name) => {
  var stylesheets = Array.from(document.styleSheets);
  var rules = stylesheets.map(function(ss) {
    return ss && ss.cssRules ? Array.from(ss.cssRules) : [];
  })
  rules = [].concat.apply([], rules);

  var style = rules.find(function (r) {
    return r.selectorText && r.selectorText.endsWith(name + "::before");
  }).style;
  return style.content.substr(1,1);
}
定义该函数后,我们可以执行以下操作(使用React语法的示例):

{getFontAwesomeIconChar('fa-globe')}

我对两种解决问题的方法的两个答案(都是由ccprog开发的):

1。按类定义设置字符:

const getFontAwesomeIconChar = (name) => {
  var stylesheets = Array.from(document.styleSheets);
  var rules = stylesheets.map(function(ss) {
    return ss && ss.cssRules ? Array.from(ss.cssRules) : [];
  })
  rules = [].concat.apply([], rules);

  var style = rules.find(function (r) {
    return r.selectorText && r.selectorText.endsWith(name + "::before");
  }).style;
  return style.content.substr(1,1);
}
在这种方法中,我们可以这样定义元素:

<text class="fa fa-globe"></text>
但我对这种方法有一些问题,所以我开发了第二种方法

2。使用函数获取字符:

const getFontAwesomeIconChar = (name) => {
  var stylesheets = Array.from(document.styleSheets);
  var rules = stylesheets.map(function(ss) {
    return ss && ss.cssRules ? Array.from(ss.cssRules) : [];
  })
  rules = [].concat.apply([], rules);

  var style = rules.find(function (r) {
    return r.selectorText && r.selectorText.endsWith(name + "::before");
  }).style;
  return style.content.substr(1,1);
}
定义该函数后,我们可以执行以下操作(使用React语法的示例):

{getFontAwesomeIconChar('fa-globe')}

@KevinBrown的副本-这不一样。这篇文章的作者想要一个所有图标名称的列表,但我想得到与这些名称对应的字符。在这里,您可以使用jquery获取所有可能的值,或者在标签中可以找到
窗口。图标
图标和元数据列表。重复的@KevinBrown-这不一样。这篇文章的作者想要一个所有图标名称的列表,但我想得到与这些名称对应的字符。在这里,您可以使用jquery获取所有可能的值或在标签中找到
窗口。图标
图标和元数据列表。您好,感谢您的解决方案!的确,它对我不起作用,但经过一些修改后我得到了它:)你可以在下面找到我的版本,我认为这更通用。嗨,谢谢你的解决方案!的确,它对我不起作用,但经过一些修改后我得到了它:)你可以在下面找到我的版本,我认为这更通用。可以使用
merged=[].concat.apply([],数组)来展平数组。
可以使用
merged=[].concat.apply([],数组)