javascript - 动态使用 Font-awesome 图标不适用于 SVG 和 JS 实现

标签 javascript ajax svg font-awesome

所以我正在为他们的 v5 图标使用 font-awesome 的新 JS&SVG 实现。对于在页面加载时出现在 DOM 中的图标(例如 <i class='fas fa-home'></i>)和 <i>,实现工作正常。标签被替换为 <svg>标签。

当我加载一些 HTML 服务器端并将其插入 DOM 时出现问题,<i>标签不会转换,因此不会显示任何图标。我找不到任何可以在我的 JS 中使用的方法(比如在将内容添加到 DOM 之后)来“重新实例化”JS 实现以就地加载 SVG 图标。

有人遇到过这个问题吗?

最佳答案

我正在这样使用它,甚至在“后加载”的 html 部分上也能正常工作。

我的 fontawesome.js 看起来像这样:

import { library, dom, config } from '@fortawesome/fontawesome-svg-core';

config.autoReplaceSvg = true;
config.observeMutations = true; // <- this is what you need the most

import { faUser } from '@fortawesome/free-solid-svg-icons/faUser';
import { faFacebook } from '@fortawesome/free-brands-svg-icons/faFacebook';

library.add(faUser, faFacebook);

// And this is important too
// Replace any existing <i> tags with <svg> and set up a MutationObserver to
// continue doing this as the DOM changes.
dom.watch();

...然后我在我的 vendors.js 中需要这个 fontawesome.js

文档中提到了它对您不起作用的原因:

Different default configs
DOM watching is on by default when Font Awesome is loaded from @fortawesome/fontawesome-free or @fortawesome/fontawesome-pro but it's disabled for the @fortawesome/fontawesome-svg-core.

以下是关于 configuration 的一些有用链接, watching the domsvg-javascript-core

关于javascript - 动态使用 Font-awesome 图标不适用于 SVG 和 JS 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51740979/

相关文章:

javascript - NVD3 散点图圆半径

javascript - 在我的情况下如何返回对象?

javascript - 在 JQUERY 中延迟 | Ajax

javascript - 为什么我收到 NaN 错误?

php - jQuery Ajax更新MySQL数据库,但没有运行成功功能

JQuery 在 IE 中无法正确解析 attr ("href")

javascript - 有什么方法可以使用户上传的 SVG 图像免受代码注入(inject)等的影响?

image - 在博客上添加 svg 图片作为标题

javascript - 如果导航打开则隐藏 div

javascript - 如何将 JavaScript 变量作为参数传递给 JSF 操作方法?