Versioni in conflitto di jQuery in Estensioni separate

5

Ho creato alcune estensioni del browser che vivono in GMail. Poiché sono estensioni più grandi, incorporano jQuery 1.6.x.

Sto usando jQuery come script di contenuto, il che significa che è stato iniettato in GMail, quindi i miei script fanno riferimento a jQuery mentre vengono caricati in seguito.

Ho scoperto che quando altre estensioni sono installate insieme alle mie estensioni e incorporano versioni precedenti di jQuery, le versioni precedenti vengono caricate per prime e il mio 1.6.x viene ignorato. La funzionalità che ho che dipende da 1.6.x non funziona più, e questo è un dealbreaker.

Sto cercando di trovare una soluzione elegante per questo. Il mio primo istinto è quello di assegnare un nome alla mia versione di jQuery, ma il caricamento di jQuery è doppio rispetto a clunky. Forse provare per jQuery e poi fare un diff, ma sembra noioso.

Qualche idea?

    
posta Sara Chipps 04.11.2011 - 20:53
fonte

2 risposte

2

Potresti fare ciò che fa HTML5Boilerplate:

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>
    
risposta data 04.11.2011 - 22:30
fonte
2

La mia sensazione personale è che probabilmente non dovresti iniettare comunque nella libreria una libreria di terze parti. Tieni presente che, poiché si tratta di un'estensione di Chrome, devi solo supportare comunque un singolo browser.

Quindi questo significa cose come iscriversi ad eventi, Ajax, e tutte le altre cose che gli abstract di jQuery sono abbastanza semplici perché non devi preoccuparti della compatibilità tra browser.

Puoi anche usare document.querySelector per ottenere gran parte delle funzionalità dei selettori di jQuery (non tutto, però).

Come bonus, renderà la tua estensione molto più leggera non caricando 100 KB di javascript in ogni pagina ...

    
risposta data 05.12.2011 - 00:24
fonte

Leggi altre domande sui tag