2009-07-13 36 views
12

Czy jest możliwe posiadanie dwóch różnych wersji jQuery w tym samym dokumencie i czy nie mogą się ze sobą kolidować?Dwie wersje jQuery na tej samej stronie

Na przykład, jeśli utworzę skryptozakładkę i chcę oprzeć kod na jQuery. Ta bookmarklet jest wstrzykiwany na niektórych stronach, które używają innej wersji jQuery, a mój kod nadpisze wersję użytą na stronie.

Czy można tego uniknąć? A może istnieją inne biblioteki zapewniające tę funkcjonalność? A może powinienem przemyśleć całą sprawę.

Dzięki za odpowiedzi i wskazówek,

bob

+1

Można sprawdzić, czy jQuery jest już na stronie przed ponownym wstrzyknięciem. –

+3

Powinieneś zdecydowanie to przemyśleć. Powinieneś zaktualizować starsze funkcje do pracy z nową jQuery, w tym obie są po prostu toną wzdęcia i życzeniem kolizji. –

+0

Czy masz kontrolę nad wersją jQuery dodawaną do strony? Nie chcesz, aby Twoi goście musieli pobrać ANOTHER wersję biblioteki, jeśli mogą pomóc - jest to zła praktyka i nadmiar pliku dokumentu dla odwiedzających. –

Odpowiedz

12

jQuery ma sposób na uniknięcie kolizji. Po załadowaniu pierwszej wersji możesz przypisać ją do innej zmiennej.

var $j = jQuery.noConflict(); 

Następnie załaduj drugą wersję jQuery. Pierwszy ładowany może być dostępny za pomocą $ j (...), podczas gdy drugi można uzyskać za pomocą $ (...).

Alternatywnie, ktoś wykonał little helper, aby ułatwić przełączanie między różnymi wersjami.

+0

Bob nie kontroluje, kiedy pierwsza wersja jest załadowana, ponieważ dzieje się to na stronie innej firmy za pośrednictwem sklepu z książkami. możesz zadzwonić do noConflct przed dodaniem nowszej wersji poprzez createElement ("skrypt") - który "uaktualni" witrynę innej firmy. czy możesz założyć kod strony trzeciej, aby był zgodny? – russau

+0

Dzięki helperowi wersji możesz przełączać się między różnymi wersjami jQuery kiedy tylko chcesz. Po prostu powiedz Wersje.użytkownika ('jquery', 'default') lub Versions.use ('jquery', 'latest') po dodaniu ich do zmiany. Jeśli jego kod używa najnowszej wersji, a trzecia strona nie jest taka, musi tylko upewnić się, że poprawnie ustawi wersję na początku i końcu swojego kodu. – Chris

2

Oto sposób wykryć to jQuery jest już obecna: jQuery in widget

wypracować najstarsza wersja JQuery kod będzie pracować z .. I odmówić pracy, jeśli obecna wersja jest zbyt stara. Przeżyje tylko kilka osób, większość witryn korzystających z JQuery jest całkiem aktualnych.

0

Dlaczego nie mają różnych wersji javascript dla różnych wersji jquery, więc zobacz, jaka wersja jest na stronie i uzyskaj odpowiedni kod, który będzie działać na tej wersji jquery.

To byłoby bezpieczniejsze, ponieważ wszystko inne może być bardzo delikatne, ponieważ wygląda na to, że nie masz kontroli nad wersją jquery, która będzie na stronie.

Powiązane problemy