Связь между фоновой страницей и всплывающей страницей в расширении Chrome - PullRequest
11 голосов
/ 12 июня 2011

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

Есть две страницы: фоновая страница и всплывающая страница.Всплывающая страница появляется при нажатии значка справа от омни-бара.Вы можете указать файл, который вы хотите загрузить, используя стандартный HTML <input type='file' ... />.

. После выбора файла и нажатия кнопки «Загрузить» имя (+ путь) файла должно быть отправлено на фоновую страницу.,Это потому, что всплывающее окно может быть закрыто пользователем, просто щелкнув где-нибудь еще на экране, что закрывает страницу.

Когда всплывающее окно активно и фоновая страница загружает файл на сервер,всплывающее окно также должно получать информацию о ходе загрузки (0-100%) с фоновой страницы и отображать эту информацию.Когда закончите, пользователь должен увидеть URL.

Проблема в том, что я не знаю, как общаться между этими двумя страницами.В документации не очень ясно, как это работает.Одна вещь, которую я попробовал, это создать функцию на фоновой странице, которая называется upload(filename), и поместить этот код во всплывающую страницу:

var BGPage = chrome.extension.getBackgroundPage();
BGPage.upload(the_filename);

Но это не сработало, функция не была 't звонил.

Кто-нибудь знает, как я могу отправить имя файла со всплывающей страницы на фоновую страницу и как получить статус загрузки (и в конечном итоге ссылку) с фоновой страницы через всплывающую страницу?

Заранее спасибо!

1 Ответ

14 голосов
/ 15 августа 2012

Определите его как переменную.

background.js

upload = function(fileName) {
  console.log('Uploading', fileName);
}

popup.html

<script src="popup.js"></script>

popup.js

var BGPage = chrome.extension.getBackgroundPage();
BGPage.upload(the_filename);

Это должно сработать. Если этого не произойдет, проверьте инспектор на наличие всплывающей и фоновой страницы:

  • Инспектор всплывающих окон: Щелкните правой кнопкой мыши по всплывающему окну и выберите «Осмотреть»
  • Background Inspector На странице настроек вашего расширения chrome: // extensions, включите режим разработчика (проверьте в правом верхнем углу) и нажмите background.js .

Откроется инспектор, затем щелкните консоль, чтобы увидеть сообщения об ошибках в консоли, чтобы помочь вам в дальнейшем, выполнение того, что я изложил выше, должно работать, я делаю это все время.

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