Можете ли вы использовать JQuery POST в расширении Chrome? - PullRequest
2 голосов
/ 19 октября 2010

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

Я не могу добавить Calendar API с помощью JavaScript, потому что я пробовал 200 различных способов включить библиотеку http://www.google.com/jsapi. Поэтому я хочу попробовать взаимодействовать с Calendar API с помощью PHP. Можно ли даже сделать POST из расширения Chrome, чтобы запустить мой PHP-файл? Если нет, то практически невозможно взаимодействовать с любым внешним API, у которого нет загружаемой библиотеки, не так ли? Если это так, я не вижу, как вы можете сделать что-нибудь полезное с расширениями Chrome.

1 Ответ

4 голосов
/ 19 октября 2010

Я думаю, что у вас все еще есть трудности, потому что вы не совсем понимаете разницу между скриптами контента и фоновыми страницами.

Сценарии содержимого имеют определенные ограничения. Они не могут:

  • Использовать Chrome. * API (кроме частей chrome.extension)
  • Использовать переменные или функции, определенные на страницах их расширения
  • Использовать переменные или функции, определенные веб-страницами или другими скриптами содержимого
  • Создание межсайтовых XMLHttpRequests

По сути, все, что они могут - это получить доступ к DOM страницы, где они были внедрены, и связаться с фоновой страницей (путем отправки запросов).

К счастью, фоновая страница не имеет никаких ограничений, только она не может получить доступ к страницам, которые просматривает пользователь. Хорошая новость заключается в том, что фоновая страница может взаимодействовать со скриптами содержимого (опять же через запросы).

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

Что касается вашего первоначального вопроса - контентные скрипты не могут делать междоменные запросы, но фоновые страницы могут. Вы можете прочитать больше здесь .

...