'没有找到与拖放提供的签名相匹配的功能

时间:2018-04-07 16:26:38

标签: javascript html dom-events

我正在尝试这样做,以便当您将图像从文件或互联网拖动到放置区域时,它会在页面上生成图像,然后拍摄该图像的SRC。这似乎很容易,但我已经浏览了整个互联网 并且无法弄清楚这一点。 Chrome会抛出错误:

  

'找不到与提供的签名相匹配的功能。

<!doctype html>
<html>

<head>
  <script>
    function dropHandler(ev) {
      ev.preventDefault();
      img = new Image();
      fileTransferred = ev.dataTransfer.items[0];
      img.src = window.URL.createObjectURL(ev.dataTransfer.items[0]);
      ev.dataTransfer.items.clear();
      ev.dataTransfer.clearData();
      window.URL.revokeObjectURL(img.src);
    }

    function dragOverHandler(ev) {
      ev.preventDefault();
    }
  </script>
</head>

<body>
  <div id="drop_zone" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);">
    <p>Drag a picture here.</p>
  </div>
</body>

</html>

为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

经过一些检查后,我发现你应该让它表现为文件,而不是项目。显示此内容的演示为 here.

JS

function dropHandler(ev) {
    ev.preventDefault();
    img = new Image();
    fileTransferred = ev.dataTransfer.files[0];
    img.src = window.URL.createObjectURL(fileTransferred);
    ev.dataTransfer.items.clear();
    ev.dataTransfer.clearData();
    window.URL.revokeObjectURL(img.src);
  alert(img.src);
}

function dragOverHandler(ev) {
    ev.preventDefault();
}