Javascript 如何拖动&;将图像从桌面拖放到dropbox

Javascript 如何拖动&;将图像从桌面拖放到dropbox,javascript,html,Javascript,Html,我是RubyonRails新手,我正在尝试一些拖放图像的代码。但是,我只能用html将图像从dragbox拖到dropbox,但不能将图像从桌面拖到dropbox。这是我的代码: 我的javascript <script> function doFirst() { mypic = document.getElementById('pic'); mypic.addEventListener("dragstart", startDrag, fals

我是RubyonRails新手,我正在尝试一些拖放图像的代码。但是,我只能用html将图像从dragbox拖到dropbox,但不能将图像从桌面拖到dropbox。这是我的代码:

我的javascript

<script>
    function doFirst() {
        mypic = document.getElementById('pic');
        mypic.addEventListener("dragstart", startDrag, false);

        leftbox = document.getElementById('leftbox');
        leftbox.addEventListener("dragenter", function(e) {
            e.preventDefault()
        }, false);
        leftbox.addEventListener("dragover", function(e) {
            e.preventDefault()
        }, false);
        leftbox.addEventListener("drop", dropped, false);
    }

    function startDrag(e) {
        var code = '<img src="/assets/Koala.jpg">';
        e.dataTransfer.setData('Text', code);
    }

    function dropped(e) {
        e.preventDefault();
        leftbox.innerHTML = e.dataTransfer.getData('Text');
    }
    window.addEventListener("load", doFirst, false); 
</script>
<section id="leftbox"></section>
<section id="rightbox">
    <img id="pic" src="/assets/Koala.jpg" />
</section>

如何从桌面拖放图像?拜托!“帮助我”

在处理文件的情况下,您应该将您的
删除的
处理程序修改为:

  function dropped(e) {
    e.preventDefault();
    var files = e.dataTransfer.files;
    for (var i = 0; i < files.length; i++) {
      var file = files[i];
      // now you are free to do whatever you want with file, e.g.: 
      new FileReader().readAsDataURL(file);
    }
  }
函数已删除(e){
e、 预防默认值();
var files=e.dataTransfer.files;
对于(var i=0;i
您可能还需要检查。

希望能有帮助。

对不起,它不起作用。也许我应该在函数startDrag
startDrag
中修改相同的内容,即使您从desctop拖动文件,函数startDrag
也不会被调用。
  function dropped(e) {
    e.preventDefault();
    var files = e.dataTransfer.files;
    for (var i = 0; i < files.length; i++) {
      var file = files[i];
      // now you are free to do whatever you want with file, e.g.: 
      new FileReader().readAsDataURL(file);
    }
  }