#google-chrome-extension
#google-chrome-расширение
Вопрос:
Я пытаюсь создать расширение Chrome, которое переопределяет загрузку файла и отображает его в браузере. Например, если вы нажмете на ссылку на файл ‘.csv’, я бы хотел, чтобы он отображался в браузере, а не загружался.
Chrome уже выполняет это для типов PDF, а расширение Xml Tree также выполняет именно это для файлов xml.
Так что это должно быть возможно, просто не уверен, как перехватить это событие?
Комментарии:
1. Не уверен, но это может иметь значение code.google.com/p/chromium/issues/detail?id=35070 и groups.google.com/a/chromium.org/group/chromium-extensions /…
Ответ №1:
Реализацию, указанную в предыдущих ответах и специально разработанную для файлов CSV, можно найти в этом моем расширении на github:
https://github.com/rgrp/chrome-csv-viewer
Кроме того, с новым (иш) Chrome webrequest API теперь возможен прямой подход по следующим направлениям:
- Прослушайте onBeforeRequest (это должно быть в фоновом скрипте — см. background.js )
- Проверьте, является ли это файлом CSV (mimetype или расширением файла)
- Если это так, отмените запрос и затем отобразите данные с помощью xhr
Рабочую версию этого можно найти в ветке этого расширения: https://github.com/rgrp/chrome-csv-viewer/tree/4-webrequest-intercept
Ответ №2:
Вы всегда можете посмотреть на код дерева XML :).
Если вам нужно работать только со ссылками, а не открывать файлы из адресной строки или меню Файл> Открыть, вы можете создать сценарий содержимого, который добавляет прослушиватель событий щелчка к каждой ссылке.
В функции прослушивателя событий:
-
Добавьте
e.preventDefault()
в первую строку, чтобы браузер не переходил по ссылке. -
Используя значение ссылки href, получите данные с помощью XMLHttpRequest.
-
В обратном вызове XMLHttpRequest откройте новую вкладку и соответствующим образом отобразите содержимое.
Очевидно, что во многих отношениях это не лучшее решение:
-
вы хотите, чтобы «обычные» ссылки обрабатывались браузером как обычно
-
как вы можете определить, содержит ли текстовый файл значения, разделенные запятыми (например), кроме просмотра расширения файла, которое, конечно, может быть ненадежным?
Вы конкретно имеете в виду файлы .csv и / или другие конкретные типы контента?