2014-10-06 73 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