0

Все, что мне кажется, связано с инъецированием jQuery, но я знаю, что jQuery уже существует на странице (консоль браузера JS позволяет мне использовать его).Использовать существующий jQuery в скрипте расширения расширения Chrome?

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

Error in event handler for runtime.onMessage: ReferenceError: jQuery is not defined

(я пробовал как $ и ссылку JQuery)

Любые идеи, почему я не могу получить доступ к существующему объекту Jquery из скрипта содержимого?

+0

Если вы введите код на веб-страницу, ваш код должен ждать jquery init, тогда он должен работать. Но если вы попытаетесь использовать jquery со страницы в вашем добавочном коде, это не сработает, потому что chrome не передает сценарии веб-страниц с вашим расширением. – SEUH

+0

Возможный дубликат [Как использовать jQuery в chrome extension?] (Http://stackoverflow.com/questions/21317476/how-to-use-jquery-in-chrome-extension) –

+0

@ZigMandel Не согласен с дубликатом. – Xan

ответ

2

Это потому, что содержание сценариев по дизайну не может получить доступ к переменным/функции, определенной страницы

https://developer.chrome.com/extensions/content_scripts

However, content scripts have some limitations. They cannot:

  • Use chrome.* APIs, with the exception of:
    • extension (getURL , inIncognitoContext , lastError , onRequest , sendRequest)
    • i18n
    • runtime (connect , getManifest , getURL , id , onConnect , onMessage , sendMessage)
    • storage
  • Use variables or functions defined by their extension's pages
  • Use variables or functions defined by web pages or by other content scripts

Так что, если вы хотите использовать определенную библиотеку Вашего расширения, чтобы ввести его

+0

Хм спасибо, это полезно. Я добавил локальный jquery в content_scripts в манифесте, и теперь я могу добавить div в dom на готовый документ, но когда я нажимаю кнопку из всплывающего окна расширения, которое отправляет сообщение для выполнения функции в том же сценарии содержимого, все еще жалуется на jquery и $ не существует. Это как-то связано с последними пунктами? Несмотря на то, что это сценарий содержимого, поскольку он исходит из сообщения с фона JS ... в нем отсутствует контекст? – Kaitlyn2004

+0

@ Kaitlyn Трудно сказать из вашего объяснения; на данный момент новый вопрос, вероятно, лучше. – Xan

Смежные вопросы