2011-10-08 33 views
12

Tôi đang cố gắng tạo tiện ích mở rộng chrome ghi đè tệp tải xuống và hiển thị tệp đó trong trình duyệt. Ví dụ: nếu bạn nhấp vào liên kết đến tệp '.csv' tôi muốn nó hiển thị trong trình duyệt thay vì tải xuống.Ghi đè tải xuống loại tệp với Tiện ích mở rộng của Chrome

Chrome đã thực hiện nó với nhiều loại định dạng file pdf và các Xml Tree extension also does exactly that for xml files.

Vì vậy, chúng ta có thể, chỉ cần không chắc chắn làm thế nào để đi về bắt sự kiện đó?

+2

Không chắc chắn, nhưng điều này có thể có liên quan http://code.google.com/p/chromium/issues/detail?id = 35070 và http://groups.google.com/a/chromium.org/group/chromium-extensions/browse_thread/thread/a76cb5f021bbce7e/a1c439d747250170?lnk=gst&q=file+type#a1c439d747250170 – timoxley

Trả lời

4

An thực hiện dọc theo dòng chỉ định bởi trong câu trả lời trước và đặc biệt được thiết kế cho các tập tin CSV có thể được tìm thấy trong phần mở rộng này của tôi trên github:

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

Bên cạnh đó, với sự mới (ish) chrome webrequest API một cách tiếp cận trực tiếp cũng là bây giờ có thể dọc theo dòng sau đây:

  1. Nghe onBeforeRequest (điều này đã được trong một kịch bản nền - xem background.js)
  2. Kiểm tra nếu điều này là một tập tin CSV (Mimetype hoặc mở rộng tập tin)
  3. Nếu vậy hủy bỏ yêu cầu và sau đó hiển thị các dữ liệu sử dụng XHR

Một phiên bản làm việc của điều này có thể được tìm thấy trong một chi nhánh của phần mở rộng : https://github.com/rgrp/chrome-csv-viewer/tree/4-webrequest-intercept

2

Bạn luôn có thể xem mã nguồn XML :).

Nếu bạn chỉ cần làm việc với liên kết và không mở tệp từ thanh địa chỉ hoặc Tệp> Mở, bạn có thể tạo tập lệnh nội dung để thêm trình xử lý sự kiện nhấp vào mọi liên kết.

Trong chức năng nghe sự kiện:

  1. Thêm e.preventDefault() trong dòng đầu tiên để ngăn chặn trình duyệt 'theo dõi' liên kết.

  2. Sử dụng giá trị liên kết href, lấy dữ liệu bằng XMLHttpRequest.

  3. Trong hàm gọi lại XMLHttpRequest, mở tab mới và hiển thị nội dung phù hợp.

Rõ ràng, bằng nhiều cách, đây không phải là một giải pháp tuyệt vời:

  • bạn muốn 'bình thường' đường dẫn tới bị xử lý như bình thường bởi trình duyệt

  • làm thế nào bạn có thể nói nếu một tệp văn bản có chứa các giá trị được phân cách bằng dấu phẩy (ví dụ) ngoại trừ bằng cách xem phần mở rộng của tệp, tất nhiên, có thể không đáng tin cậy?

Bạn có suy nghĩ cụ thể về tệp .csv - và/hoặc các loại nội dung cụ thể khác không?

Các vấn đề liên quan