Я нашел способ использовать Cufon за пределами fabric.js, но это действительно грязный хак.
Сначала я добавил еще один cufon.js на страницу из github. Затем я открыл его в редакторе и автоматически переименовал «Cufon» в «CufonBase».
Я написал функцию-обертку для registerFont, которая дважды вызывает ее для Cufon и CufonBase:
var makeWrap = function(fn1, fn2){
return function(){
try{
fn2.apply(this, arguments);
return fn1.apply(this, arguments);
}catch(ex){
ErrorHandler.Exception(ex);
}
};
};
Cufon.registerFont = makeWrap(Cufon.registerFont, CufonBase.registerFont);
Это перезаписывает базовый метод Cufon, который загружает шрифт и вызывает также CufonBase.registerFont, поэтому вам не нужно изменять шрифт js.
И тогда вы можете позвонить:
CufonBase.replace('h1', {fontFamily: 'font_name'});
И у меня это работает.