Internet Explorer 9拖放(DnD)

Ste*_*veJ 31 html5 drag-and-drop internet-explorer-9

有谁知道为什么以下网站拖放示例(加上许多其他在线教程)在Internet Explorer 9中不起作用?Chrome,FireFox和Safari都可以.

http://www.html5rocks.com/tutorials/dnd/basics/

我认为IE9被认为是最符合HTML5标准的浏览器?尤其是DnD,因为自IE5以来它们一直支持它.我是否必须在某处更改设置?

我玩HTML5和CSS3越多...... IE9缺乏的越多.

有没有人有任何链接到在IE9中工作的DnD教程?

Lea*_*ema 25

我找到了一个workarround来使本机dnd api也可以在IE中使用链接和图像以外的元素.在按下按钮时,将onmousemove处理程序添加到可拖动容器并调用本机IE函数element.dragDrop():

function handleDragMouseMove(e) {
    var target = e.target;
    if (window.event.button === 1) {
        target.dragDrop();
    }
}

var container = document.getElementById('widget');
if (container.dragDrop) {
    $(container).bind('mousemove', handleDragMouseMove);
}

// todo: add dragstart, dragover,... event handlers
Run Code Online (Sandbox Code Playgroud)

  • 一个更方便的解决方案是:`$(container).bind('selectstart',function(){this.dragDrop(); return false;});` (15认同)
  • 在Prototype中:`document.on("selectstart","[draggable]",function(event,element){event.stop(); element.dragDrop();});` - 所有`的一个全局事件观察者'draggable]`元素 (2认同)
  • @Farhadi值得一些答案!三年来,现代(jQuery的1.11),相当于是`$(容器).在( '选择开始',函数(){this.dragDrop();返回false;});对于下降`没有进一步的具体浏览器的代码,似乎需要dragend等.并且它不会导致Chrome,Firefox和IE10 +忽略IE9特定代码的任何其他问题. (2认同)

小智 21

好吧,我在IE9中遇到了同样奇怪的行为,似乎IE9不会对div进行拖放(HTML 5样式).如果您要使用href ="#"更改A的div,您将能够拖放.

这不会拖动:

<div data-value="1" class="loadedmodule-container" draggable="true">drag</div>
Run Code Online (Sandbox Code Playgroud)

这将:

<a href="#" data-value="1" class="loadedmodule-container" draggable="true">drag</a>
Run Code Online (Sandbox Code Playgroud)

希望这有助于任何人

  • 结果证明是问题所在.我使用jQuery并在DnD的例子中创建了一个... http://www.springfieldspringfield.co.uk/stuff/dnd/dnd.html (3认同)
  • 仅供参考,这个答案很接近,但更准确的问题描述如下:问题不在于IE不会对`div`元素进行拖放操作.问题是它在`display:block;`元素上没有正确执行. (3认同)
  • 发布了一个解决方法,使ie9中的链接和图像之外的容器可以拖放 (2认同)
  • @SteveJ如果荷马吃掉所有的甜甜圈,我预计会发生一些事情 (2认同)