我加载了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"); }); } });
但不幸的是,这是行不通的,有人可以帮帮我吗?
答案 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
也用于生成网址,以防需要进行网址编码