2011-11-19 61 views
3

我正在寫一個Chrome擴展程序來自動的我每天的任務之一,任務的一部分下載.csv文件和操縱數據的數據。作爲自動化的一部分,我想用Javascript抓住文件,並讓腳本對其進行操作。Chrome擴展:可以攔截的Javascript文件下載並解析

問題是抓住這個XMLHttpRequest文件將是一場噩夢,因爲他們發送了大量的唯一ID來驗證用戶,這將是一個噩夢,以確定它們來自哪裏。

我可以輕鬆地點擊使用JavaScript這將啓動文件下載按鈕,但有沒有JavaScript可以攔截這個請求並解析CSV的方法嗎?我想如果它不可能與普通的JavaScript我可能能夠做到這一點與HTML5文件API?

+0

請詳細解釋「噩夢」部分:) –

+0

@BorisSmus大聲笑,基本上我不認爲提供者希望人們自動刮取大量這些下載(我只做1),所以他們已經使其非常難以遵循他們的代碼,他們將所有這些ID發佈到服務器以獲得下載。我大概花一個星期搞清楚這一切了,但我希望有會是一個簡單的解決方案,這是不是很難維持。 –

回答

6

您可以嘗試使用webRequest.onBeforeRequest API。當下載請求就是你要由你可以用這種方法將其取消,得到所使用的完整的URL,並從JavaScript代碼相同的請求。

+1

WebRequest API不再是實驗性的;它支持 – gauravphoenix

+0

這應該是被接受的答案。 –

0

您可以通過一旦文件被下載訪問該文件與一個AJAX請求的內容file://{filepath}做到這一點。您只需將file://*權限添加到清單文件。

要獲取本地系統中下載的文件路徑,請使用chrome.downloads.search並獲取filename屬性。