使用 dragenter 事件,我在网页上显示了一个放置区,以使放置的文件快速上传,并且一切正常。但是,拖动选定的文本时也会弹出放置区。如何及早分辨出差异?

  • 我知道drop事件公开了要使用dataTransfer.files进行迭代的所有文件内容,但是为时已晚。我在dragenter中需要它,只有我看到files数组一直都是空的。
  • 我需要对外观的完全控制,而不是在寻找现有的lib。
  • 拖动文本和文件时,可以看到 event.dataTransfer.Clipboard.effectAllowed 的值不同,但是每个浏览器的值也不同(Chrome和FF)。
  • MooTools到位,如果有帮助。
  • 最佳答案

    好的,我取得了足够的进步,可以在Chrome和Firefox(3.6+)上脱颖而出。这可能不是万无一失,但万一有人发现它有用,可以使用以下代码:

      var isFileTransfer = false;
      if (evt.dataTransfer.types) {
        for (var i=0; i<evt.dataTransfer.types.length; i++) {
          if (evt.dataTransfer.types[i] == "Files") {
            isFileTransfer = true;
            break;
          }
        }
      }
    

    关于javascript - 如何在Javascript Dragenter事件期间判断被拖动的内容是文本还是文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5323668/

    10-11 06:10