有没有办法对HTML5拖放的 setDragImage (在JavaScript或Dart中)进行特征检测?
我使用以下命令(来自guide to detecting everything)执行常规的HTML5拖放功能检测:
return 'draggable' in document.createElement('span');
这将为Chrome,Firefox等和IE10返回
true
。它将为IE9返回false
。现在,问题出在 IE10 :尽管它支持大多数HTML5拖放,但不支持
setDragImage
,我需要为setDragImage
提供一个polyfill。但是我找不到解决方法。 最佳答案
上一个答案中提到的功能检测在Opera 12中失败-因为它声称支持setDragImage,所以它不起作用。链接到的Dart库在Opera 12中也完全失败,从而向控制台抛出多个错误。
实际上,不可能填充幻影图像-即使创建文档元素并将其放置在正确的位置,如果没有setDragImage也无法摆脱默认图像元素。
我知道的唯一解决方案是滤除Opera 12和所有版本的IE(不低于IE11),并将其视为旧版浏览器,必须使用传统的鼠标事件脚本来满足。由于直接功能测试失败,因此我建议您进行间接对象测试(即使用对象测试来检测那些特定的浏览器):
var hasNativeDraggable = (element.draggable && !(document.uniqueID || window.opera));