4

我加载了 dweb 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"); }); } });

但不幸的是,这不起作用,有人可以帮帮我吗?

4

1 回答 1

2

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

您应该将其嵌入页面上,或者更轻松地将链接标签添加到将加载 google 样式的页面内容。

然后,您还需要在使用它的任何地方设置字体系列...

像这样的东西:

$("#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也用于生成 url,以防需要进行 url 编码

于 2012-06-15T07:23:56.270 回答