javascript - 通过javascript检测正在使用的@font-face

标签 javascript jquery css

我需要嗅探 <p> 的格式这样我就可以将信息传递给 <iframe>和匹配格式。

我可以使用 jQuery 获取字体

var font = $("p").css('font-family');
var fsiz = $("p").css('font-size');

但是,如果字体系列是网络字体 - 例如“Open Sans”,我还需要找到 @font-face 的源代码加载它的规则。

我不知道该怎么做。

最佳答案

查找所有 css 定义的字体,演示 here (控制台)。

function getFonts (obj) {
    var o = obj || {},
        sheet = document.styleSheets,
        rule = null,
        i = sheet.length, j;
    while( 0 <= --i ){
        rule = sheet[i].rules || sheet[i].cssRules || [];
        j = rule.length;
        while( 0 <= --j ){
            if( rule[j].constructor.name === 'CSSFontFaceRule' ){ // rule[j].slice(0, 10).toLowerCase() === '@font-face'
                o[ rule[j].style.fontFamily ] = rule[j].style.src;
            };
        }
    }
    return o;
}

关于javascript - 通过javascript检测正在使用的@font-face,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171387/

相关文章:

javascript - 在jquery中计算字符串中的特殊字符

javascript - JavaScript 注入(inject)的内部 CSS 不适用

html - 即只有样式表不起作用,包括代码

javascript - 如何在react/redux操作中的内部函数中访问变量?

JavaScript Canvas -clearImage() -canvas.getBoundingClientRect

javascript - 堆叠打字效果和淡入效果?

Javascript - 如何在 html 页面上显示下周三的日期

javascript - 在 Bootstrap 中通过悬停显示附加部分

javascript - 如何获取2个日期之间的数据

javascript - 状态 200 OK,相同域,有效 JSON 数据且无响应(Ajax)