2016-11-16 74 views
0

我需要模擬用戶拖放圖像到文件上傳div。我將從aws s3 bucket中提取圖片。如何通過Chrome擴展模擬文件拖放上傳?

This question涵蓋了如何模擬事件。但是,drop通過調用dropzone div上的.drop()事件來完成。

但是,就我而言,代碼將在由Chrome擴展插入的content script中運行。這意味着,afaik,我無法在頁面的dropzone div上調用drop()方法。

是否有另一種方法來模擬drag-and-drop函數?

如果很重要,我正在處理的頁面似乎使用jQuery UI ddmanager來控制其文件dropzone div

回答

0

您可能想要檢查並嘗試在Passing multiple files with drag and drop中給出的現有拖放的代碼示例,其中您實際上可以將一個或多個文件從桌面拖放到瀏覽器中。

<div id=」dropzone」></div> 

var dropzone = document.getElementById('dropzone'); 
dropzone.ondrop = function(e) { 
    var length = e.dataTransfer.files.length; 
    for (var i = 0; i < length; i++) { 
    var file = e.dataTransfer.files[i]; 
    ... // do whatever you want 
    } 
}; 

然而,它也指出,當你試圖通過一個文件夾,注意它會被拒絕或爲導致失敗的File對象處理。對於文件夾,您需要更改處理丟棄對象的方式。

您可能還想閱讀Exploring the FileSystem APIs瞭解有關FileSystem API以及有關新拖放功能的更多信息,請閱讀document

最後,這些GitHub的職位也可能有幫助:

+0

我沒有看到你的答案是如何相關的問題。它不以任何方式涉及Selenium。這可能會有所幫助(提到的解決方法聽起來很有希望),但需要在答案中重新調整/包含更多相關信息。 – Xan

+0

謝謝@Xan。我已經更新了我的答案。 – Teyam