font awesome SVG 图标不适用于 safari (iOS)
font awesome SVG icons doesn't work on safari (iOS)
我有以下字体真棒参考
<link href="css/fontawesome-free-5.12.1-web/css/all.css" rel="stylesheet">
<script defer src="css/fontawesome-free-5.12.1-web/js/all.js"></script>
或者我也有高级套件参考
<script src="https://kit.fontawesome.com/7xxxx.js" crossorigin="anonymous"></script>
两个引用都在 Google Chrome 上呈现图标,但无法在 Safari 上运行 (iOS)
控制台错误说
NoModificationAllowedError: The object can not be modified
这是代码 all.js fontawesome 库有问题
if (node.parentNode && node.outerHTML) {
node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "<!-- ".concat(node.outerHTML, " -->") : '');
} else if (node.parentNode) {
var newNode = document.createElement('span');
node.parentNode.replaceChild(newNode, node);
newNode.outerHTML = newOuterHTML;
}
我怎样才能使这个适用于 safari?
node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "<!-- ".concat(node.outerHTML, " -->") : '');
出于某种原因,font-awesome <i>
标签在 SVG 中带有 font-awesome class 可以在 Chrome 上工作,但不能在 safari 上工作。
所以我不得不更换我的代码
旧代码:
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 900)
.append("i")
.attr("class", ({ property }) => {
const styleClass = getIconClass({ property})
return styleClass
})
替换为:
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 900);
var y = 70;
var x=10;
["\uf083", "\uf0c2", "\uf7ad", "\uf738", "\uf185"].forEach(function(code, i) {
svg.append("text")
.attr("x",x)
.attr("y",y)
.attr("style", "font-family: 'Font Awesome 5 Pro'; font-weight: 900; ")
.attr('font-size', function(d) { return '70px';} )
.text(function(d) { return code; });
y+=70;
x+=70;
});
我有以下字体真棒参考
<link href="css/fontawesome-free-5.12.1-web/css/all.css" rel="stylesheet">
<script defer src="css/fontawesome-free-5.12.1-web/js/all.js"></script>
或者我也有高级套件参考
<script src="https://kit.fontawesome.com/7xxxx.js" crossorigin="anonymous"></script>
两个引用都在 Google Chrome 上呈现图标,但无法在 Safari 上运行 (iOS) 控制台错误说
NoModificationAllowedError: The object can not be modified
这是代码 all.js fontawesome 库有问题
if (node.parentNode && node.outerHTML) {
node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "<!-- ".concat(node.outerHTML, " -->") : '');
} else if (node.parentNode) {
var newNode = document.createElement('span');
node.parentNode.replaceChild(newNode, node);
newNode.outerHTML = newOuterHTML;
}
我怎样才能使这个适用于 safari?
node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? "<!-- ".concat(node.outerHTML, " -->") : '');
出于某种原因,font-awesome <i>
标签在 SVG 中带有 font-awesome class 可以在 Chrome 上工作,但不能在 safari 上工作。
所以我不得不更换我的代码
旧代码:
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 900)
.append("i")
.attr("class", ({ property }) => {
const styleClass = getIconClass({ property})
return styleClass
})
替换为:
var svg = d3.select("body")
.append("svg")
.attr("width", 800)
.attr("height", 900);
var y = 70;
var x=10;
["\uf083", "\uf0c2", "\uf7ad", "\uf738", "\uf185"].forEach(function(code, i) {
svg.append("text")
.attr("x",x)
.attr("y",y)
.attr("style", "font-family: 'Font Awesome 5 Pro'; font-weight: 900; ")
.attr('font-size', function(d) { return '70px';} )
.text(function(d) { return code; });
y+=70;
x+=70;
});