我正在尝试使用 Dart 实现 HTML5 拖放。为了让拖放在IE9 中与链接和图像以外的元素一起工作,我使用了一种解决方法(请参阅Internet Explorer 9 拖放 (DnD)和这个实时示例)。
我在 Dart 中使用以下代码:
/**
* Workaround to enable drag-and-drop elements other than links and images in
* Internet Explorer 9.
*/
void _enableIE9drag(Element element) {
element.onSelectStart.listen((MouseEvent event) {
// Prevent selection of text.
event.preventDefault();
// This should be a native call to dragDrop()
element.dragDrop();
});
}
调用element.dragDrop()
应该是 IE9 的原生 JavaScript 调用。而是dart2js
将方法调用编译为dragDrop$0()
.
如果我手动编辑生成的 js 输出并删除$0
,一切都会在 IE9 中正常运行。
那么,如何调用dragDrop()
IE9 的原生 javascript 函数呢?
编辑
正如 Greg 所建议的那样,我已经打开了bug 10837,希望我们可以摆脱这种浏览器不一致的问题dart:html
。