2016-09-21 5 views
0

Я пытаюсь загрузить jquery в content_scripts манифеста, но когда я загружаю страницу с уже загруженным на их странице jquery, выпадающее меню перестает работать по какой-либо причине, и я не могу найти никакой ошибки в моем консольном журнале. Поэтому, если я удалил jquery в content_scripts моего манифеста, выпадающий список просто прекрасен, поэтому я предполагаю, что это потому, что текущая страница, на которую я уже загрузил библиотеку jquery.google chrome extension manifest loading jquery

"content_scripts": [{ 
     "matches": [ 
      "http://*/*", 
      "https://*/*" 
     ], 
     "js": ["js/jquery-2.2.4.js", "js/custom.js"], 
    }], 
+1

Из [docs] (https://developer.chrome.com/extensions/content_scripts#execution-environment): «Скрипты контента выполняются в специальной среде, называемой изолированным миром. У них есть доступ к DOM страницы они вводятся, но не к каким-либо переменным JavaScript или функциям, созданным этой страницей ». Ошибка jQuery страницы мешает вашим сценариям контента. Здесь должно быть больше. Что именно делает ваше расширение? – DelightedD0D

+0

Просьба также указать, что такое 'custom.js' –

+0

Пожалуйста, отредактируйте вопрос по теме: включите ** полный ** [mcve], который дублирует проблему. Обычно, включая * manifest.json *, некоторые из фоновых * и * скриптов содержимого. Вопросы, требующие помощи по отладке («** почему этот код не работает? **)) должны включать: ► желаемое поведение, ► конкретную проблему или ошибку * и * самый короткий код, необходимый для его воспроизведения ** в вопросе сам**. Вопросы без четкого описания проблемы не полезны другим читателям. Смотрите: «** Как создать [mcve] **», [о каких темах я могу спросить здесь?] (Http://stackoverflow.com/help/on-topic) и [ask]. – Makyen

ответ

1

Content Script работает в разных контекстах js, чем в главном окне, поэтому они не должны конфликтуют вообще.

Вы также можете попробовать удалить JQuery из окна контекста сферы, выполнив:

var myJquery = jQuery.noConflict(true); 

Но вам нужно переместить сценарий в document_start для этого есть эффект, добавив в свой манифест раздел файла script_context:

"content_scripts": [{ 
     "matches": [ 
      "http://*/*", 
      "https://*/*" 
     ], 
     "js": ["js/jquery-2.2.4.js", "js/custom.js"], 
     "run_at": "document_start" 
    }] 

Но если вы это сделаете, ваш скрипт custom.js должен быть готов к выполнению в состоянии, когда документ еще не готов.

Если вы приложите больше источников, это будет более актуальным решением.

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