我正在node.js
环境中运行phantomjs,目前一切顺利。目前,我只是使用本地字体,但想让google web fonts与phantomjs一起使用。
关于phantomjs
是否可以使Web字体工作以及如何使Web字体工作,存在各种各样的冲突和令人困惑的报告。有些像this的文章包含带有无效链接的过时信息。像this这样的帖子表明 phantomjs 2.0 将支持网络字体,或者可以支持网络字体,其他人则说 2.0.1 会支持。在this帖子中,建议Webfonts可以在 2.0 中使用。
我尝试了很多选项,包括 phantomjs 2.0 和2.0.1二进制文件,但无法使其正常工作。可能是我使用web font loader使用以下内容在js中加载了网络字体:
WebFont.load({
google: {
families: ['Droid Sans', 'Droid Serif']
},
loading: function() { console.log('loading'); },
active: function() {
console.log('active');
// hooray! can do stuff...
},
inactive: function() { console.log('inactive'); },
fontloading: function(familyName, fvd) { console.log('fontloading', familyName, fvd); },
fontactive: function(familyName, fvd) { console.log('fontactive', familyName, fvd); },
fontinactive: function(familyName, fvd) { console.log('fontinactive', familyName, fvd); }
});
但是我总是到达
inactive
分支,因此字体加载永远不会成功...即使相同的代码在浏览器中也能正常工作(到达active
分支。在font loader docs中,它说:
我的怀疑是Web字体加载程序确实确定浏览器(phantomjs)不支持此功能,因此始终到达
inactive
。有人让phantomjs + Web字体+ Web字体加载器正常工作吗?
最佳答案
您正在使用什么UA?我认为Web Font Loader使用UA来检测支持。尝试使用Chrome 46的UA,然后查看是否可以使用。
var webPage = require('webpage');
var page = webPage.create();
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36';