Как смоделировать событие удаления в окне составления Gmail - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть случай, когда мне нужно программно прикреплять вложения к окну создания Gmail, используя расширение Chrome. inboxSDK имеет API для этого, но я не хочу включать огромную библиотеку только для этой функции.

Я попытался сделать это, имитируя событие перетаскивания в окне создания.Я создаю событие удаления следующим образом:

            var fakeDropEvent = new DragEvent('drop');
            Object.defineProperty(fakeDropEvent, 'dataTransfer', {
              value: {files: [blob]}
            });

Я даю ему свойство dataTransfer, которое имеет свойство files с массивом объектов Blob в качестве значения.Но отправка этого события в окне создания ничего не делает.Когда я попытался перехватить нормальное событие удаления (которое было инициировано пользователем вручную), я заметил, что его event.dataTransfer.files имеет объект FileList , тогда как для ложного события, которое я делаю, я возвращаюмассив объектов BLOB.Я предполагаю, что это проблема, с которой я сталкиваюсь.Gmail ожидает FileList, но не получает его.Я пытался создать объект FileList самостоятельно, но безуспешно.Есть ли способ, что-то подобное может быть достигнуто.Я пытался прочитать, что делает inboxSDK, но их код с закрытым исходным кодом, и почти невозможно понять их код uglified.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...