主题: Opera 下修改字体无效的修正方法
作者: small29, 发布日期: 2010-10-18 02:49:24, 浏览数: 3708

之前我发现,在 Opera 10.63 下,更改字体时浏览器会自动为字体名添加双引号,导致产生的HTML代码不符规范:
<span style="font-family:"Microsoft YaHei";">测试文字</span><br />

 

且Opera不支持字体别名。比如幼圆你能写成"幼圆",黑体只能写成"黑体",而不能用它们在系统中的正式字体名称——YouYuan 和 SimHei

 

对这两个问题,我的解决方法是:

 

在如下位置添加代码

 

KE.cmd = function(id) {

    ...

    this.mergeAttributes = function(el, attr) {
        for (var i = 0, len = attr.length; i < len; i++) {

            ...
        }

        //添加以下代码,将 style.cssText 字串内的双引号删除。在 Opera 10.63 下测试通过

    while (el.style.cssText.indexOf('"') >= 0) {
        el.style.cssText = el.style.cssText.replace('"', '');
    }

        //end

        return el;
    };

    ...

};

 

plugins.fontname = {
    fontName : {

        //以下写法在 Firefox、Opera、Chrome 的新版本和 IE8 下都可正常显示
        '微软雅黑' : '微软雅黑(兼容)',
        '新宋体' : '新宋体(兼容)',
        '宋体' : '宋体(兼容)',
        '黑体' : '黑体(兼容)',
        '仿宋' : '仿宋(兼容)',
        '楷体' : '楷体(兼容)',
        ...
    }
};

发表新帖 发表回复