Невозможно выполнить datatransfer.getData () для объекта Drag and Drop из Illustrator. - PullRequest
0 голосов
/ 16 ноября 2018

Я создаю веб-инструмент, который позволяет пользователю перетаскивать изображения из разных источников.Я могу перетаскивать объекты из файловых систем и браузеров, но я не могу сделать это с объектами в Adobe Illustrator.

    @HostListener('drop', ['$event']) public onDrop(event) {
      event.preventDefault();
      event.stopPropagation();
      event.dragstart = true;
      let dataTransfer = event.dataTransfer;
      let types: string = dataTransfer.types;
      console.log(types);
      let transfer: any;
      if (types.indexOf("Files")>-1)
        this.handleFiles(dataTransfer.files);
      else{
        console.log("elsewhere")
        transfer = dataTransfer.getData(types);
      }
    }

    handleFiles(files) {

      for (var i = 0; i < files.length; i++) {
        var file = files[i];
        var imageType = /image.*/;
        if (!file.type.match(imageType)) { continue; }
        var img = <HTMLElement>document.getElementById("imagePlaceholder");
        // img.file = file;
        var reader = new FileReader();
        reader.onload = function (event: any) {
          img.setAttribute('src', event.target.result);
        };
        reader.readAsDataURL(file);
      }
    }

HTML:

<div class="dropzone" imageDnD (drop)=handleDrop($event)></div>

тип файла в событии: com.adobe.cep.dnd.pasteboardtype .Когда я читаю fileType, я получаю следующую информацию.

"{"assetList":[{"data":[""],"type":"image"},{"data":[""],"type":"text"}],"source":"com.adobe.illustrator","version":"23.0"}"

Пока мы должны получать SVG или изображение.

...