如何加载谷歌字体?

时间:2012-06-15 06:40:36

标签: javascript jquery google-font-api

我加载了web fonts提供的Google Web Fonts service动态列表,并将其放在选择列表中,例如:

$.get("https://www.googleapis.com/webfonts/v1/webfonts?key=AIzaSyChZeTZ-DzMW-45IUBXUSuBha9MWEiXXtI", 
     {}, function (data) {
     $.each(data.items, function (index, value) {
        $('#fonts').append($("<option></option>")
                   .attr("value", value.family)
                   .text(value.family);
    });

现在我想要的是在用户从选择列表中选择它时加载每个font并为此尝试:

$("#fonts").live({ change: function () { 
    $.get("http://fonts.googleapis.com/css?family=" + $(this).val(), {}, 
    function () { alert("font loaded"); }); } });

但不幸的是,这是行不通的,有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:2)

第二个get请求只返回加载webfont所需的CSS。

您应该将其嵌入页面,或者更轻松地将链接标记添加到将加载Google风格的网页内容。

然后你还需要在任何地方设置font-family ......

类似的东西:

$("#fonts").live('change', function () { 

    $('body').append("<link rel='stylesheet' id='colorbox-css'  href='http://fonts.googleapis.com/css?family=" + escape($(this).val()) +"' type='text/css' media='all' />");

    $('body').css({'font-family':'"'+$(this).val()+'"'})

});



$.get("https://www.googleapis.com/webfonts/v1/webfonts?key=AIzaSyChZeTZ-DzMW-45IUBXUSuBha9MWEiXXtI",  {}, function (data) {

    $.each(data.items, function (index, value) {
            $('#fonts').append($("<option></option>")
                    .attr("value", value.family)
                    .text(value.family));
                    });


});

注意:escape也用于生成网址,以防需要进行网址编码