【发布时间】:2013-05-08 16:51:25
【问题描述】:
我有一个文件上传字段,我添加了一个 jQuery 更改。
在 chrome 中效果很好,loadImage 函数用要上传的图片的渲染替换占位符图片。在 Firefox 中,以下代码呈现 3 次(控制台中有 3 个“1”,但 onchange 处理程序中只有一个“2”),然后在添加图像后将其删除。
为什么在 Firefox 中会发生这种情况,我该如何预防?
Coffeescript(如果有人更喜欢阅读 js,我可以转换):
$('#project_display_pic').change (e) ->
console.log "2"
value = $(this).val()
value = value.replace("C:\\fakepath\\","")
$('#display_pic_uploader > p').text(value)
loadImage(
e.target.files[0],
( (img) ->
console.log "1"
$('#display_pic_preview > img').remove()
$('#display_pic_preview').append(img)
),
{maxWidth: 212}
)
Haml 如果有帮助(#project_display_pic 是文件字段的 id):
#display_pic_preview
= image_tag( @project.display_pic.medium.url, :class => "default_pic" )
#display_pic_uploader
%p Add display image
= f.file_field :display_pic
【问题讨论】:
-
我正在使用this plugin 显示所选图像的图像预览。 loadImage() 函数接受 File 或 Blob 对象或简单的图像 URL(例如“example.org/image.png")作为第一个参数。如果将 File 或 Blob 作为参数传递,如果浏览器支持 URL API,它会返回 HTML img 元素或 FileReader 对象(如果支持),或者为 false。
标签: javascript jquery ruby-on-rails coffeescript