Проблема с HTML5 Drag & Drop в Internet Explorer (доступ к ресурсу dataTransfer невозможен)

Я пытаюсь реализовать базовые функции drag & drop с помощью 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);
});

Что я делаю неправильно?

Ответы

Ответ 1

Для тех, кто ищет ответ:

getData() и атрибут setData() должны называться точно "text", так как u может использовать любой параметр в других браузерах (что актуально делает много смысла - IE скалы снова), другие ответы здесь бесполезны.

Ответ 2

Вы правы. В IE 11 я изменил из e.dataTransfer.getData('text/html') к e.dataTransfer.getData('text') и никаких ошибок не возникает. Dto. в e.dataTransfer.setData('текст').

Этот образец (методы DnD) затем будет запускаться в IE 11, Chrome и Firefox: http://www.developer.com/lang/using-html5-drag-and-drop-in-asp.net.html

Ответ 3

Похоже, я неправильно понял цель dataTransfer.setData.

Он работает только так:

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