首页 > 技术文章 > IE中拖放问题

brainworld 2017-12-27 16:38 原文

1.所有的元素上都能绑定放置目标的事件,但并不保证此元素是有效的放置对象。

默认情况下,IE中只有文本框(<input/>或<textarea/>)是网页上唯一有效的放置目标。
若想让其他元素变成有效的放置目标,则需要阻止dragenter和dragover事件的默认行为,因为这些只适用于IE。
方法是在dragenter和dragover的事件处理函数中将event.returnValue设置为false(适用于IE事件).
调用event.preventDefault方法(适用于标准事件)。
 
2.dataTransfer数据传输
setData只能设置两种类型的值:text和URL。如果是文本选用text类型,如果是链接,选用URL类型
注意只有2个空间可以存储这2种类型的值,一个是放text的空间,一个是放URL的空间。每个空间只能放1一个值,所以如果重复调用setData(),会覆盖空间内已经存储的值。
存储在dataTransfer对象中的数据在drop事件发生前才有用,即如果在drop事件处理函数中没有去获取其中的数据,那么dataTransfer就会被销毁,数据就会丢失。

推荐阅读