web-dev-qa-db-ja.com

Internet ExplorerでのHTML5のドラッグアンドドロップの問題(データ転送プロパティへのアクセスは不可)

HTML5で基本的なドラッグ&ドロップ機能を実装しようとしています。 Chromeでは完全に正常に動作しますが、IE10では0x8000ffff - JavaScript runtime error: Unexpected call to method or property access.setData行にエラーがあります。

function handleDragStart(e) {
    e.dataTransfer.effectAllowed = 'move';                                        
    e.dataTransfer.setData("dropTarget", g.destination);
}

var cols = $("#" + g.source + " tbody > tr");
[].forEach.call(cols, function (col) {
    col.addEventListener('dragstart', handleDragStart, false);
});

何が悪いのですか?

24
netik

答えを探している人のために:

getData()およびsetData()属性は正確に「テキスト」と呼ばれる必要があります。uは他のブラウザーで任意のパラメーターを使用できるためです(実際には多くの意味があります-IE揺れ動く)、その他の答えここは役に立たない。

62
Srneczek

あなたが正しいです。 IE 11では、e.dataTransfer.getData( 'text/html')からe.dataTransfer.getData( 'text')に変更しましたが、エラーは発生しません。e.dataTransferのDto。 setData( 'text')。

このサンプル(DnDメソッド)は、IE 11、Chrome and Firefox: http://www.developer.com/ lang/using-html5-drag-and-drop-in-asp.net.html

5
lkr

_dataTransfer.setData_の目的を誤解しているようです。

これは次のようにのみ機能します。

e.dataTransfer.setData("Text", g.destination);

3
netik