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