Как определить, что все фреймы вернули ответы из контентного расширения в расширении Chrome? - PullRequest
0 голосов
/ 25 января 2011

Я хочу, чтобы мое расширение Chrome повторно запускало содержательный скрипт для всех открытых вкладок перед просмотром всплывающего окна, чтобы собрать самые последние данные о каждой веб-странице (оно отправляет сообщение на фоновую страницу).Моя проблема в том, что для того, чтобы получить полный доступ к каждому фрейму, мне нужно установить для всех фреймов значение true.Это означает, что перед отображением всплывающего окна мне нужно подождать, пока я не получу сообщение от каждого кадра.

Моя проблема в том, что я не уверен, как определить, сколько существует кадров.Один из подходов, которые я рассмотрел, заключается в обнаружении количества кадров изнутри скрипта содержимого, но есть открытая ошибка, которая указывает, что вы не можете запросить это прямо сейчас.Другой - просто дождаться количества ответов, эквивалентных тому, которое я получил, когда впервые зашел на страницу, но возможно, что с тех пор из-за AJAX-вызовов количество кадров увеличилось.Наконец, я надеялся, что ответ на chrome.extension.SendRequest будет включать такую ​​информацию, но это не так.

Ваша помощь приветствуется.

1 Ответ

0 голосов
/ 25 января 2011

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

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