2014-10-06 10 views
14

Próbuję zaimplementować podstawowe funkcje przeciągania & z HTML5. Działa całkowicie dobrze w Chrome, ale w IE10 pojawia się błąd 0x8000ffff - JavaScript runtime error: Unexpected call to method or property access. w linii setData.Problem z przeciąganiem i upuszczaniem HTML5 w programie Internet Explorer (dostęp do właściwości data Transfer nie jest możliwy)

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); 
}); 

Co robię źle?

+0

Możliwy duplikat funkcji [przeciągnij i upuść nie działa w IE - JavaScript, HTML5] (https://stackoverflow.com/questions/12803235/drag-and-drop-not-working-in-ie-javascript-html5) – user10089632

Odpowiedz

42

Dla tych, którzy szukają odpowiedzi:

getData() i setData() atrybut musi nazywać się dokładnie "tekstem", ponieważ możesz używać dowolnego parametru w innych przeglądarkach (co zresztą czyni wiele sensu - ponownie IE rocks), te inne odpowiedzi tutaj są bezużyteczne.

+1

Dziękuję, zmienił go na tekst, a teraz działa na IE! <3 –

+1

@netik ta odpowiedź powinna być oznaczona jako poprawna. I dzięki @ user1096907! – BradGreens

+0

Po spędzeniu godziny lub dłużej próbując dowiedzieć się, dlaczego nie mogłem wpaść w IE11, zorientowałem się, że nie możesz rzucić na wbudowany element stylu; http://www.w3schools.com/code/tryit.asp?filename=FCO7068754RJ –

2

Wygląda na to, że źle zrozumiałem cel dataTransfer.setData.

Działa tylko tak:

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

+2

jak to się różni od kodu w pytaniu? Tak więc parametr musi być nazwany dokładnie "text"/"Text" ?? Co powiesz o tym? – Srneczek

Powiązane problemy