使用 angular4 的拖放事件在 IE11 中不起作用

Posted

技术标签:

【中文标题】使用 angular4 的拖放事件在 IE11 中不起作用【英文标题】:Drag and Drop event using angular4 is not working in IE11 【发布时间】:2018-03-25 14:47:44 【问题描述】:

我正在使用指令在将文件放在 html 元素上时获取文件,它在 chrome 中运行良好,但在 IE11 中无法运行。 以下是拖放事件的代码 从 '@angular/core' 导入 Directive, HostListener, Output, EventEmitter ;

@Directive(
  selector: '[appDragDrop]'
)
export class DragDropDirective 

  constructor()  
  @Output()
  FileDragEvent: EventEmitter<File> = new EventEmitter<File>();

  @HostListener('window:drop', ['$event']) public onDrop(event) 

    event.preventDefault();
    event.stopPropagation();
    if (event.dataTransfer.items[0].type != 'application/vnd.ms-excel') 
      return false;
    
    let files = event.dataTransfer.files;
    this.FileDragEvent.emit(files);
  
  @HostListener('window:dragover', ['$event']) public onDragOver(evt) 
    evt.preventDefault();
    evt.stopPropagation();

  

  @HostListener('window:dragleave', ['$event']) public onDragLeave(evt) 
    evt.preventDefault();
    evt.stopPropagation();

  

最初我只是将这样用于@hostlistener

@HostListener('dragover',

但后来我读到一些博客要求我将其更改为这样

@HostListener('window:dragover',

我还尝试为具有拖放指令的元素提供最小高度,但我仍然面临这个问题。

该功能在 chrome 中运行流畅,但我在 IE11 中遇到问题

【问题讨论】:

到目前为止这个问题有什么更新吗?? 【参考方案1】:

从 IE 11 的某些样式 pointer-events: none 中删除,一切似乎都正常

【讨论】:

以上是关于使用 angular4 的拖放事件在 IE11 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Web 部件:非 IE 浏览器中的拖放支持

可拖动 div 内的图像在拖动时停止了我的拖放

fullCalendar 中的拖放事件不起作用

HTML5 拖放 getData() 仅适用于 Chrome 中的拖放事件?

HTML5 拖放 getData() 仅适用于 Chrome 中的拖放事件?

Vue dragula - 多次调用的拖放事件监听器