使用我的Chrome擴展名我想在獲取文件上傳到網站之前抓取文件(也許可以更改)。特別是來自文件輸入。 換一種方式,如果我選擇一個文件與輸入[類型=文件]我想我的Chrome擴展中斷任何提交併採取該文件。然後我的擴展將它的魔力應用到文件中,然後可以提交/上傳文件。 我該如何解決這個問題?在上傳之前使用Chrome擴展名抓取文件
文件路徑出現問題。如果我抓住文件輸入的優勢,由於HTML5標準和兼容性問題,它總是將實際路徑更改爲「C:\ fakepath \」。 我怎樣才能訪問該文件呢?也許它被暫時保存在一些鉻存儲中?
編輯: 嗯,我設法將文件讀入輸入選擇這樣的文件:
var file;
$('input[type=file]').change(function(e){
file = e.target.files[0];
var reader = new FileReader();
reader.onload = function (event) {
console.log(event.target.result); //contains the file data
//maybe change data and use filewriter
};
reader.readAsDataURL(file);
};
現在我想用一個FileWriter寫入e.target.files [0]
我跟着這個教程: http://www.html5rocks.com/en/tutorials/file/filesystem/ 但我不能夠創造一個合適的FileWriter。
沒有必要寫入磁盤上的原始文件 - 可能甚至不可能 - 但我需要在相應的文件輸入表單字段中更改用於上載的數據。
如果我使用我的擴展名「form.addEventListener(‘提交’......」,並使用FORMDATA + XHR發送的形式,將所有覆蓋或損壞的網站上的提交處理程序(例如用於表單驗證)? – Merion 2012-07-26 13:34:28
@ user1547097否,'addEventListener' **添加**一個事件監聽器,它不會覆蓋以前定義的事件監聽器(內聯:'
是的,但如何處理一個網站?:'功能foonsubmit(that){ \t $('[name =「foo」]')。val(2); \t that.submit();如果你在內容腳本中使用'ev.preventDefault();'' – Merion 2012-07-26 15:22:26