我想在上传前显示图片预览,为此我使用下面给出的代码。
它适用于 firefox,但不适用于 IE8
<%= image_tag @image, :id=>"preview-photo" %>
<%= file_field 'image','photo', :onchange => "preview(this);" %>
function preview(this) {
document.getElementById("preview-photo").src = this.value;
return;
}
请问有什么办法可以在IE8和其他浏览器中预览图片吗?
最佳答案
在 ERB 中:接受输入,给它一个类名和动态 ID,并制作一个带有动态 ID 的图像标签,您将在其中显示预览图片。
<%= f.file_field :photo, :class => 'photo_upload', :id => "image_#{image.id}" %>
<%= image_tag("preview.png", :id => "image_#{image.id}_medium") %>
在JavaScript中:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$(document.getElementById(input.id + "_medium")).attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$(".photo_upload").change(function(){
readURL(this);
});
关于javascript - Rails+javascript - 上传前的图片预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5593866/