#jquery #background #popup #google-chrome-extension
#jquery #фон #всплывающее #google-chrome-extension
Вопрос:
Я создаю расширение Chrome для pageAction с всплывающим окном и скриптом содержимого.
Я хочу использовать jQuery во всплывающем окне, чтобы манипулировать его DOM для представления данных (которые я извлекаю с самого веб-сайта, используя jQuery, введенный в качестве скрипта содержимого). Я знаю, что могу загрузить jQuery непосредственно в popup.html и используйте его. Однако я хотел посмотреть, смогу ли я загрузить jQuery только один раз на фоновой странице и получить к нему доступ во всплывающем окне, а не загружать его каждый раз при открытии всплывающего окна.
Для этого я попробовал следующее во всплывающем окне:
var background = chrome.extension.getBackgroundPage();
var $ = background.jQuery;
$("#testID").innerHTML = "testing jQuery";
но это не сработало — $("#testID")
было не определено. Я проверил, что jQuery был загружен на фоновой странице, и использование альтернативных имен для $, например jq, jQuery и т.д., Также не сработало.
Есть предложения о том, как заставить это работать?
Комментарии:
1. Получен ваш запрос на слияние, но учетные записи, которые вы связали, те же самые.
2. @TimPost — Привет, Тим, мой номер незарегистрированного пользователя 708921, а мой зарегистрированный номер пользователя 709233. Пожалуйста, объедините мою незарегистрированную учетную запись с моей зарегистрированной учетной записью. Спасибо.
Ответ №1:
$("#testID", document).html("testing jQuery");
Я не думаю, что есть способ навсегда изменить контекст по умолчанию, поэтому вам нужно будет передать document
в качестве второго параметра всем вашим селекторам.
Комментарии:
1. Спасибо, это сработало, и очевидным продолжением является определение, например
var _$ = function(str) { return chrome.extension.getBackgroundPage().jQuery(str,document); }