Dynamisch jQuery mit JavaScript einbeziehen, wenn es nicht bereits vorhanden ist

8

Ich schreibe ein kleines JavaScript-Tool für mich, das ich anderen Leuten zur Verfügung stellen möchte und es benutzt jQuery. Mein Traum für dieses kleine Hilfsprogramm ist, dass Leute eine einzige .js -Datei von einer entfernten Quelle einbinden können und wenn diese Datei geladen ist, muss sie prüfen, ob jQuery bereits enthalten ist und, falls ja, make Sicher, es ist eine kürzlich genug Version, um mit dem, was mein Code tun muss, kompatibel zu sein. Irgendein Pseudocode, der mein Problem klarer erklären könnte (dieser Code würde am Anfang der einzelnen .js -Datei erscheinen, die ich bereits erwähnt habe):

%Vor%

Meine Frage, in drei freundliche Teile destilliert:

  1. Ist es möglich, zwei separate Versionen von jQuery zu laden, ohne dass sie sich gegenseitig überlappen?
  2. Kann ich die Ausführung meines JS-Codes stoppen, während jQuery geladen ist, und dann fortfahren?
  3. Ist es möglich, noConflict () zu verwenden, wie ich es beschreibe? Oder sollte ich einfach alles mit jQuery () aufrufen und nicht damit umgehen?

Die übergeordnete Idee hier ist, dass jeder alte Benutzer ein kleines HTML-Snippet schnappen und es in seine Site / Blog / was auch immer bringen könnte und es Just Work ™ haben. Und da viele moderne Publishing-Plattformen jetzt mit jQuery ausgeliefert werden, kann ich nicht einfach ruhig davon ausgehen, dass es nicht läuft und es einschließt.

Vielen Dank für Ihre Zeit, und lassen Sie mich bitte wissen, wenn irgendein Teil davon nicht klar ist oder wenn ich zusätzlichen Kontext / Details zur Verfügung stellen kann, um Ihre Antwort einfacher zu machen.

    
inkedmn 29.12.2009, 09:05
quelle

6 Antworten

15
%Vor%     
James 29.12.2009, 09:11
quelle
1
%Vor%     
routerguy 29.12.2009 22:19
quelle
1

Diese Frage wurde hier

beantwortet %Vor%     
Freddy Gomez 02.02.2017 22:30
quelle
0

Ich weiß nicht viel über das noConflict, also kann ich meistens nur 2 antworten.

Dies wird normalerweise als Lazy Loading bezeichnet. Siehe meine Antwort zu einer ähnlichen Frage, um dies zu tun

    
seanmonstar 29.12.2009 09:20
quelle
0

Ich habe nicht versucht, zu sehen, wie es sich verhält, wenn eine niedrigere Version bereits geladen ist, aber Sie können google.load

ausprobieren

Google

    
James Manning 29.12.2009 11:04
quelle
0

Um absolute Sicherheit zu gewährleisten, sollten Sie einen Namespace für die Version von jQuery in Betracht ziehen, die Sie verwenden. Es ist ein bisschen hässlich, aber ein Regex gegen die Codebasis, um Ihren eigenen globalen Anschlusspunkt zu definieren, stellt sicher, dass Sie nichts kaputt machen. Wenn der Code auf einer Vielzahl von Websites weit verbreitet ist, ist dies die beste Option und gewährleistet die zukünftige Kompatibilität.

    
Don Albrecht 29.12.2009 13:13
quelle