2013-02-07 73 views
4

我希望在<input type="file">输入中选择一个字体文件之后预览字体文件。在上传之前预览字体

我试过类似于用于预览图像(类似于this answer)的方法,但使用Font object而不是Image对象。但是,在设置了src之后,字体无法加载,因为它搜索系统上安装的字体,但是以临时名称搜索。

我该怎么做?

+0

,您是否试图附加一些CSS的文档('@字体face'用'e.target.result'作为src属性)? '$('').appendTo($(document))'(不可能可以工作,但值得测试,我猜) – mikakun

+0

@mikakun它的作品,很好的电话!请张贴它作为答案,以便我可以给你你应得的声望。 – Vulcan

回答

1

所以有它(虽然它是一个多受过教育/测试答案猜测):

预览它上传之前的字体(在现代的浏览器)使用的FileReader类&附加到文档在新@font-face CSS定义读取文件对象result属性:

function previewfonts(input) { 
     if (input.files && input.files[0]) { 
      var reader = new FileReader(); 

      reader.onload = function (e) { 
       $('<style>'+ 
        '@font-face{'+ 
         'font-family: preview;'+ 
         'src: url('+e.target.result+');'+ 
         '}'+ 
         '.preview {font-family: preview;}'+ 
        '</style>'+ 
        '<div class="preview">lorem ipsum...</div>').appendTo($(document)); 

      } 

      reader.readAsDataURL(input.files[0]); 
     } 
    } 
相关问题