Как вы используете две разные версии jQuery, одна из которых добавляется расширением Chrome? - PullRequest
0 голосов
/ 07 февраля 2020

Ситуация: я написал расширение Chrome, которое добавляет очень разные функциональные возможности на сайт. Я использую JQuery почти везде в своем коде, так как я делаю работу, которая требует гораздо больше кода в нативном JS. Моя jQuery версия указана только в разделе «Сценарии содержимого» в моем манифесте.

Проблема: веб-сайт, для которого написано мое расширение, уже внедряет очень старую JQuery версию, и от этого зависит множество их сценариев. Они вводят его, используя обычный тег script в <head>. Теперь я хочу использовать свою собственную jQuery версию (более новую) для всех моих собственных сценариев в моем расширении, и сценарии сайта должны продолжать использовать свою старую версию. По сути, я хочу, чтобы моя версия jQuery была полностью отделена от их версии, но я не смог заставить ее работать. Всякий раз, когда я вызываю jQuery из любого из моих скриптов контента, он использует старую версию, внедренную в сайт, вместо новой версии в моих скриптах контента.

Я пытался использовать noConflict jQuery ( и, возможно, использовать ярлык, отличный от $), но когда я использую свое расширение для добавления скрипта в документ с помощью $ .noConflict (true), noConflict используется версией сайта jQuery, и все их скрипты ломаются, потому что $ is больше не доступен для них.

Я знаю, что две версии jQuery, загруженные на одну и ту же страницу, никогда не идеальны, но мне нужен более новый jQuery для моего кода, и я не могу форсировать скрипты сайта использовать более новую версию из-за их кода.

Есть ли способ указать jQuery использовать noConflict, пока вы вводите его?

Или, может быть, есть способ полностью отделить более новый jQuery и указать расширению не использовать тот, который введен на сайт?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...