Internet Explorer 9拖放(DnD)
有谁知道为什么下面的网站拖放示例(加上许多其他教程在线)不工作在Internet Explorer 9? Chrome,FireFox和Safari都可以。
http://www.html5rocks.com/tutorials/dnd/basics/
我以为IE9假设是最符合HTML5的浏览器? 特别是与DnD,因为他们一直支持自IE5以来。 我必须在某处更改设置吗?
我玩HTML5和CSS3越多…… IE9就越less。
有没有人有任何链接到在IE9中工作的DnD教程?
那么我在IE9中遇到了这种奇怪的行为,似乎是IE9不会做一个拖放(HTML 5样式)的div。 如果你想改变一个与HREF =“#”的DIV,你将能够拖放。
这不会拖动:
<div data-value="1" class="loadedmodule-container" draggable="true">drag</div>
这将会:
<a href="#" data-value="1" class="loadedmodule-container" draggable="true">drag</a>
希望这有助于任何人
我find了一个workarround使本地dnd api也可以在IE中使用链接和图像以外的元素。 将onmousemove处理程序添加到可拖动容器,并在按下button时调用本机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
我遇到了同样的问题。 这个技巧适用于我:
node.addEventListener('selectstart', function(evt) { this.dragDrop(); return false; }, false);
它停止select并开始拖动。
这个DnD的例子是在IE9中工作。
我认为HTML5Rocks的例子不能在IE9中使用,因为CSS3的特性。 这个例子使用了几个CSS3特性,但IE9的CSS3支持不好。
此外,一些JS事件和方法在IE中不起作用。 例如setDragImage()
即使在IE9中也不工作。 这也是原因之一。
我也一直在看这个,我发现Opera 11.50有一个基本问题; 它和IE9都不理解HTML5可拖动属性,也不了解HTML5拖放事件。
作为一种解决方法,我在http://dev.opera.com/articles/view/accessible-drag-and-drop/上find了这篇歌剧文章,它模拟了对mousedown,mouseover,mousemove,mouseout等的拖放支持。和mouseup事件。; 当然,这是很多工作,但它确实给你在Opera中的支持。
你可以在http://devfiles.myopera.com/articles/735/example.html看到现场演示;
相同的dnd仿真技巧适用于IE9,并且与其他HTML5浏览器兼容。
我和上面的Didier Caron有同样的问题。 可拖动div
不工作,但锚标签工作正常。 我在HTML5 Doctorfind了一个解决scheme。
我会build议使用jQuery UI的可拖动 。
使用默认情况下可拖动属性设置为true的元素。 他们应该干杯干杯
这对我有用。 它使得IE9的行为就像其他的现代浏览器一样拖/放:
if (document.doctype && navigator.appVersion.indexOf("MSIE 9") > -1) { document.addEventListener('selectstart', function (e) { for (var el = e.target; el; el = el.parentNode) { if (el.attributes && el.attributes['draggable']) { e.preventDefault(); e.stopImmediatePropagation(); el.dragDrop(); return false; } } }); }