2013-02-07 68 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]); 
     } 
    } 
相關問題