чтение файла, выпадающего во всплывающее окно Chrome Extension - PullRequest
0 голосов
/ 06 ноября 2019

возможно ли прочитать содержимое файла, который был добавлен во всплывающее окно с расширением chrome? Моя цель - создать расширение, которое поможет заполнить какую-то веб-форму. вам просто нужно перетащить текстовый файл в окно расширения, и тогда содержимое файла будет автоматически вставлено в веб-форму. Я знаю, что приложение Chrome может получить доступ к файловой системе, но я работаю с расширением. и мой файл удален пользователем. Я уже имел дело с "drag'n'drop" и с заменой содержимого веб-страницы.

Обновление мое расширение теперь работает нормально, большое спасибо @wOxxOm. я использую

var reader = new FileReader();
reader.readAsText(file);
reader.onloadend = function() {
    content = this.result;
}

для чтения файлов и

chrome.tabs.query({"status":"complete","windowId":chrome.windows.WINDOW_ID_CURRENT,"active":true}, function(tabs){
        chrome.tabs.sendMessage(tabs[0].id, content);
    });

для отправки содержимого файла в скрипт содержимого.

, но сейчас я использую текстовый файл в качестве ввода. мой текстовый файл содержит JSON и выглядит как

{
    "surname": "Smith",
    "name": "John",
    "select1": "value 3",
    "email": "a@b.com",
} 

, когда я перетаскиваю этот файл во всплывающее окно моего расширения, он сканирует веб-страницу для полей ввода (селектор имен jquery) с именами из этого JSON и заполняет эти поля с помощьюзначения из JSON. так что это автоматизированный инструмент для заполнения форм, и его можно использовать с любым веб-сайтом :) следующая проблема - использовать .docx файлы в качестве входных данных. я знаю, что .docx - это просто .zip, поэтому я могу распаковать его и затем прочитать содержимое документа. но мне нужно сначала сохранить файл, распаковать его в папку расширений, а затем прочитать распакованные файлы. Я использую этот код для запроса доступа к изолированной файловой системе:

function onInitFs(fs) {
  console.log('Opened file system: ' + fs.name);
}

window.requestFileSystem(window.TEMPORARY, 5*1024*1024 /*5MB*/, onInitFs, errorHandler);

, но, похоже, только приложения Google могут получить доступ к изолированной файловой системе. что я делаю не так? я не хочу получить доступ к локальной файловой системе. я думаю, что chrome.storage не подходит, так как позволяет хранить ключевые элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...