以下网页加载 Font Awesome,显示图标fa-check
,并且有一个debugger
断点window.onload
:
<!DOCTYPE html>
<html>
<head>
<link rel='stylesheet' href='http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'>
<script>
window.onload = function () {
debugger;
};
</script>
</head>
<body>
<div class='fa fa-check fa-4x'></div>
</body>
</html>
在 Chrome 上(控制台打开),断点被命中after图标已渲染。这是预期的行为。
在 Safari 上(控制台打开),断点被命中before图标已渲染。我假设这是 Safari 的一个错误。
我怎样才能保证window.onload
在 Safari 上渲染图标后触发?
您可以使用检查字体加载状态document.fonts.ready https://developer.mozilla.org/en-US/docs/Web/API/Document/fonts它返回一个您可以解决的承诺,使用then(...)
:
document.fonts.ready.then(function() {
// Any operation that needs to be done only after all the fonts
// have finished loading can go here.
});
请在此处查看支持的浏览器:
https://developer.mozilla.org/en-US/docs/Web/API/Document/fonts https://developer.mozilla.org/en-US/docs/Web/API/Document/fonts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)