Javascript “替代方案”;text/x-moz-url“;在Chrome/IE 10/Edge的Event.dataTransfer中

Javascript “替代方案”;text/x-moz-url“;在Chrome/IE 10/Edge的Event.dataTransfer中,javascript,angularjs,drag-and-drop,cross-browser,Javascript,Angularjs,Drag And Drop,Cross Browser,我正在为angular创建一个drag'n'drop指令,它检测从另一个浏览器窗口/选项卡拖动的URL,并刚刚发现还可以使用此属性读取原始锚文本: xMozUrl=event.dataTransfer.getData('text/x-moz-url') 这似乎非常方便,因为我可以显示链接文本 Mozilla的customEvent.dataTransfer属性在从拖动的锚点检索实际链接文本时是否有一个(最前沿的)替代项?我在文件上找不到任何东西。IE 10/11/Edge也非常感谢 在某些上下

我正在为angular创建一个drag'n'drop指令,它检测从另一个浏览器窗口/选项卡拖动的URL,并刚刚发现还可以使用此属性读取原始锚文本:

xMozUrl=event.dataTransfer.getData('text/x-moz-url')

这似乎非常方便,因为我可以显示链接文本

Mozilla的custom
Event.dataTransfer
属性在从拖动的锚点检索实际链接文本时是否有一个(最前沿的)替代项?我在文件上找不到任何东西。IE 10/11/Edge也非常感谢

在某些上下文中,这是当前整个“drop”侦听器的主要功能:

$document.bind("drop", function(event) {
  event.preventDefault();
  event.stopPropagation();
  if (event.target == target || event.target.parentNode == target) {
    try {
      var url, 
          linkText = '',
          xMozUrl = event.dataTransfer.getData('text/x-moz-url');

      if (xMozUrl.length > 0) {
        // mozilla also sends the link text so we can extract some kind of 'title'
        var uriParts = xMozUrl.split("\n");
        url          = uriParts[0];
        linkText     = uriParts[1];
      } else {
        // should return the first valid URL found in dataTransfer
        // https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Recommended_Drag_Types#link
        url   = event.dataTransfer.getData('URL').toString();
        title = '';
      }

      if (url.length > 0) {
        $scope.url = url;
        $scope.$emit('drag-link:drag:drop', {
          url   : url,
          title : linkText
        });
      }

    } catch (e) {
      console.error(e);
    }
  } else {
    console.log("drop", event, event.target, event.toElement, $elem);
  }
});
编辑


刚刚通过测试发现IE 10,11根本不支持将锚拖动到打开的页面。11月10日,URL刚刚打开,就好像没有事件一样。preventDefault()

Chrome似乎支持“text/x-moz-URL”格式

对于EDGE,有一种称为“
UserActivityJsonArray
”的格式。这是一个带有“title”和“uri”的JSON对象。这似乎是最近的发展(见:)。然而我还没有找到IE10/11的任何东西