javascript - Rails+javascript - 上传前的图片预览

标签 javascript ruby-on-rails

我想在上传前显示图片预览,为此我使用下面给出的代码。

它适用于 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/

相关文章:

ruby-on-rails - Rails 中 after_create 回调的优雅替代方案?

ruby-on-rails - 如何在 Ruby on Rails 中为模型添加虚拟属性?

ruby-on-rails - ActiveSupport::Notifications transaction_id

javascript - 为什么我的散点图中没有显示所有文本标签?

python - Heroku 未被识别为内部或外部命令 (Windows)

javascript - 一键执行双重操作 jquery

javascript - 在 PhantomJS/CasperJS 中做回传

ruby-on-rails - 如何将代码包含到 js.erb View 中?在 rails 3 中

javascript - 如何统计总评论数?

javascript - Object.includes 不是旧版 Chrome 中的函数