【问题标题】:Preview a font before it is uploaded在上传之前预览字体
【发布时间】:2013-01-22 14:37:54
【问题描述】:

我希望在<input type="file"> 输入中选择字体文件后预览它。

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

我该怎么做?

【问题讨论】:

  • 您是否尝试将一些 css 附加到文档(@font-facee.target.result 作为 src 属性)? $('<style>@font-face{src='+e.target.result+';...</style>').appendTo($(document))(我猜可能不会工作,但值得测试)
  • @mikakun 它有效,很好的电话!请将其发布为答案,以便我给您应得的声誉。

标签: javascript jquery file-upload fonts


【解决方案1】:

就是这样(尽管这更像是一个猜测而不是经过教育/测试的答案):

在上传之前预览字体(在现代浏览器中),方法是使用 fileReader 类并在新的@font-face css 定义中将读取文件对象结果属性附加到文档:

  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]);
        }
     }

【讨论】:

    猜你喜欢
    • 2011-05-26
    • 2013-09-16
    • 2019-09-04
    • 1970-01-01
    相关资源
    最近更新 更多