javascript - 使用 Javascript 检测是否安装了字体,如果没有则提供不同的 css

标签 javascript jquery css fonts embedded-fonts

我是 Javascript 的新手(但不是 HTML 或 CSS),我正在尝试通过 Lalit Patel 使用这个脚本检测用户系统上是否安装了字体,如果没有,则提供修改后的样式表。我已经成功地让第一部分工作了:我上传了 fontdetect.js 文件,在我的标题中调用它,然后将其粘贴到我的 body 标记的末尾之前:

<script type="text/javascript">
window.onload = function() {
    var detective = new Detector();
    alert(detective.detect('Courier'));
};
</script>

(以 Courier 为例。)这会导致在页面加载时弹出警报,告诉我是否安装了字体,并且效果很好。但我不知道如何让脚本获取不同的样式表,而不是触发警报。这看起来像是基本的东西,但我无法在任何地方找到细节,即使我一直在研究 Javascript 教程。任何指导将不胜感激!

如果需要更多细节:如果用户没有安装自定义字体或完全关闭自定义字体,我想使用 CSS 更改文本的大小/间距属性,以便后备字体能够适应相同的空间。

最佳答案

var detective = new Detector();
if (!detective.detect('Courier')){
  var s = document.createElement('link');
  s.rel = 'stylesheet';
  s.type = 'text/css';
  s.media = 'all';
  s.href = '/link/to/alternative/stylesheet.css';
  document.getElementsByTagName('head')[0].appendChild(s);
}

猜测类似的东西。如果 .detect() 失败,它将动态创建样式表并将其插入到页面中。遇到问题也可以用.setAttribute()离开 s 元素。

关于javascript - 使用 Javascript 检测是否安装了字体,如果没有则提供不同的 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790564/

相关文章:

html - div 和屏幕顶部之间的间隙

javascript - React - 无法对已卸载的组件执行 React 状态更新

javascript - 如何使用 jQuery 在克隆输入上增加名称 attrVal 数组?

jquery - 在 Accordion 中一次打开一个选项卡

JQuery Mobile 下拉列表定位

css - 显示为正方形的 Instagram 字体图标

Css 在 jquery ui 主题小部件中 float 两个元素

javascript - 如何创建一个 html 表,每行的列数未知,使列对齐,并为每个单元格/行提供一个 id?

javascript - 如何使用 FnFilter() 在多选中获得精确匹配?

javascript - 如何使用jQuery实现 "Hot Keys"