2014-10-06 74 views
14

我試圖用HTML5實現基本拖拽&拖放功能。它在Chrome中運行完全正常,但在IE10中,我在setData行中收到0x8000ffff - JavaScript runtime error: Unexpected call to method or property access.錯誤。Internet Explorer中的HTML5拖放問題(dataTransfer屬性訪問不可能)

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

我在做什麼錯?

+0

[拖放不能在IE中工作 - Javascript,HTML5]的可能重複(https://stackoverflow.com/questions/12803235/drag-and-drop-not-working-in-ie-javascript-html5) – user10089632 2017-08-26 14:11:34

回答

42

對於那些誰正在尋找一個答案:

的getData()和使用setData()必須屬性被稱爲「文本」,因爲你可以在其他瀏覽器中使用任何參數(這實際上很有意義 - IE再次出現),但這裏的其他答案是無用的。

+1

謝謝,把它改爲文本,現在它在IE上工作! <3 – 2015-05-25 07:03:55

+1

@netik這個答案應該被標記爲正確的。並感謝@ user1096907! – BradGreens 2015-06-01 19:37:07

+0

花了一個多小時或更多的時間試圖弄清楚爲什麼我不能在IE11中下降,我想你不能掉到內聯風格的元素; http://www.w3schools.com/code/tryit.asp?filename=FCO7068754RJ – 2017-02-12 16:55:41

2

看起來我誤解了dataTransfer.setData的目的。

它只能是這樣的:

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

+2

這與你問題中的代碼有什麼不同?所以參數必須完全稱爲「文本」/「文本」?該怎麼提? – Srneczek 2015-02-26 10:56:55