7

ブラウザがファイルのドロップをサポートしているかどうかを検出できます<input type="file" />か?

たとえば、これは Chrome では可能ですが、IE8 では可能ではありません。

Modernizr.draganddrop可能性はありますが、それは正しい選択ですか?カスタムのドラッグ/ドロップ イベント ハンドラは追加していません。

アップデート

ジョーの答えを確認するために、ファイルのドロップを停止する jQuery の例を次に示します。Chrome および Firefox で検証済み。

$yourFileInput.on('drop', function() {
    return false; // if Joe's explanation was right, file will not be dropped
});
4

1 に答える 1

2

特定のJavaScriptイベントのサポートを検出するための答えは?あなたを助けるかもしれません。DivではなくInputに対してテストするようにコードを調整し、「Drop」イベントのテストは私にとってはうまくいくようです。

ここで再現されているため、クリックする必要はありません(この機能を検出するだけでよいように見えるため、わずかに調整します)。

function isEventSupported(eventName) {
  var el = document.createElement('input');
  eventName = 'on' + eventName;
  var isSupported = (eventName in el);
  if (!isSupported) {
    el.setAttribute(eventName, 'return;');
    isSupported = typeof el[eventName] == 'function';
  }
  el = null;
  return isSupported;
}
if(isEventSupported('drop')){
  //Browser supports dropping a file onto Input
} else {
  //Fall back, men!
}
于 2012-10-27T21:22:19.520 に答える