Я работаю над расширением Chrome, которое вставляет некоторые скрипты в Gmail, например jQuery и qtip. Он работал без каких-либо проблем, пока я не добавил расширение Chrome LinkedIn Sales Navigator, которое (я проверил) также использует jQuery.Плагин jQuery, который перезаписывается другой реализацией jQuery
После добавления, я получаю эту ошибку:
TypeError: $(...).qtip is not a function(…)
И console.log($.qtip)
возвращает undefined
, в то время, прежде чем добавить это расширение оно возвращалось функцию.
Мой поток, чтобы ввести эти сценарии является:
- В
"content_scripts"
разделе манифеста, я добавляюcontent.js
. - В файле
content.js
я используюdocument.createElement("script")
для каждого скрипта и добавьте его на страницу<head>
.
Я не знаю, в чем проблема, но я думаю, что это проблема с перепиской с jQuery, но я не уверен, почему и как ее решить.
Спасибо за любую помощь!
Это расширение впрыскивает JQuery v2.1.1 на страницу, так вам придется использовать jQuery.noConflict() – wOxxOm
Эй, приятель, спасибо за это, я не знал, что он существует. Если я хорошо разбираюсь в документах об этом, он дает возможность вернуть jquery в первую вызванную версию (или в JQuery, когда конфликт с другой библиотекой). В этом случае это будет работать, я думаю. Но я не могу знать, какая версия будет загружаться сначала все время. Должен ли я тестировать '$ .qtip', чтобы увидеть, следует ли мне вызывать' noConflict'? –
Слово «версия» просто означает «экземпляр». Документация немного неоднозначна. – wOxxOm