2011-10-08 84 views
12

我試圖構建覆蓋文件下載並在瀏覽器中顯示它的Chrome擴展程序。例如,如果您點擊一個'.csv'文件的鏈接,我希望它在瀏覽器中呈現,而不是下載它。覆蓋使用Chrome擴展程序下載文件類型

的Chrome已經會爲PDF的類型和Xml Tree extension also does exactly that for xml files.

因此,它應該是可能的,只是不知道如何去捕捉這一事件?

+2

不確定,但這可能是相關http://code.google.com/p/chromium/issues/detail?id = 35070 和 http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/a76cb5f021bbce7e/a1c439d747250170?lnk=gst&q=file+type#a1c439d747250170 – timoxley

回答

4

沿着由先前的回答顯示和專爲CSV文件中的行實現可以在此擴展我的被發現在GitHub上:

https://github.com/rgrp/chrome-csv-viewer

此外,隨着新的(ISH)鉻webrequest API直接的辦法也是現在可以大致如下:

  1. 聽onBeforeRequest(這必須是在後臺腳本 - 見background.js)
  2. 檢查這是否是一個CSV文件(MIME類型或文件擴展名)
  3. 如果是這樣取消該請求,然後使用XHR

顯示數據的這方面的一個工作版本可以在延伸的一個分支中找到:https://github.com/rgrp/chrome-csv-viewer/tree/4-webrequest-intercept

2

您可以隨時查看XML樹代碼:)。

如果您只需要使用鏈接,而不是從地址欄或文件>打開文件,您可以構建一個內容腳本,爲每個鏈接添加一個點擊事件監聽器。

在事件監聽功能:

  1. 在第一線添加e.preventDefault(),以防止瀏覽器「下面」的鏈接。

  2. 使用鏈接href值,使用XMLHttpRequest獲取數據。

  3. 在XMLHttpRequest回調中,打開一個新選項卡並相應地呈現內容。

顯然,在許多方面,這不是一個很好的解決方案:

  • 你想「正常」的鏈接,像往常一樣瀏覽器

  • 你怎麼能告訴處理如果文本文件包含逗號分隔的值(例如),除非通過查看文件擴展名,當然這可能不可靠?

您是否特意考慮.csv文件 - 和/或其他特定類型的內容?