Имитация капли капли даже на элементе - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь удалить сгенерированный файл CSV в зону удаления, которая является угловым элементом. Я могу создать файл, который является простой частью, но вызов drop даже возвращает ошибку: generator.js: 67 Uncaught TypeError: dropZone.ondrop не является функцией, ссылающейся на ту часть скрипта, где вызывается событие drop ,

Я взял этот код из другого ответа, и похоже, что это решение проблемы. Есть идеи?

Элемент:

<td class="dynamic-preview-sheet-import-dropzone-empty" id="dynamic-preview-sheet-import-dropzone" ondragleave="angular.element(this).scope().dynamicCtrl.handleFileDragLeave(event)" ondragover="angular.element(this).scope().dynamicCtrl.handleFileDragOver(event)" ondrop="angular.element(this).scope().dynamicCtrl.handleFileDrop(event)"></td>

Код для инъекций:

var iframe = document.getElementById('gwt-debug-GwtPreviewInputView-cpsPreviewFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var dropZone = innerDoc.getElementById('dynamic-preview-sheet-import-dropzone');    
(function () {
                    var fileErrorHandler = function (e) {
                            var msg = "";
                            switch (e.code) {
                                case FileError.QUOTA_EXCEEDED_ERR:
                                    msg = "QUOTA_EXCEEDED_ERR";
                                    break;
                                case FileError.NOT_FOUND_ERR:
                                    msg = "NOT_FOUND_ERR";
                                    break;
                                case FileError.SECURITY_ERR:
                                    msg = "SECURITY_ERR";
                                    break;
                                case FileError.INVALID_MODIFICATION_ERR:
                                    msg = "INVALID_MODIFICATION_ERR";
                                    break;
                                case FileError.INVALID_STATE_ERR:
                                    msg = "INVALID_STATE_ERR";
                                    break;
                                default:
                                    msg = "Unknown Error";
                                    break;
                            };
                            console.log("Error: " + msg);
                        },
                        requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem,
                        dropFile = function (file) {
                            dropZone.ondrop({
                                dataTransfer: {
                                    files: file
                                },
                                preventDefault: function () {}
                            });
                            dropZone.ondragover = function (e) { 
                              e.preventDefault() 
                            }
                        };

                    if (!requestFileSystem) {
                        console.log("FileSystem API is not supported");
                        return;
                    }
                    requestFileSystem(
                        window.TEMPORARY,
                        1024 * 1024,
                        function (fileSystem) {
                            var textFile = {
                                name: "ID " + i,
                                content: sheet,
                                contentType: "text/csv"
                            };

                            // Create and drop CSV file
                            fileSystem.root.getFile(
                                textFile.name, {
                                    create: true
                                },
                                function (fileEntry) {
                                    fileEntry.createWriter(
                                        function (fileWriter) {
                                            fileWriter.onwriteend = function (e) {
                                                console.log("Write completed (" + textFile.name + ")");
                                                fileSystem.root.getFile(
                                                    textFile.name, {},
                                                    function (fileEntry) {
                                                        fileEntry.file(
                                                            function (file) {
                                                                dropFile(file);
                                                            },
                                                            fileErrorHandler
                                                        );
                                                    },
                                                    fileErrorHandler
                                                );

                                            };
                                            fileWriter.onerror = function (e) {
                                                console.log("Write failed (" + textFile.name + "): " + e.toString());
                                            };
                                            fileWriter.write(new Blob([textFile.content], {
                                                type: textFile.contentType
                                            }));
                                        },
                                        fileErrorHandler
                                    );
                                },
                                fileErrorHandler
                            );
                        },
                        fileErrorHandler
                    );
                })();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...