Tworzę wtyczkę jQuery i chcę sprawdzić, czy załadowany jest skrypt zewnętrzny. To jest dla wewnętrznej aplikacji internetowej i mogę zachować spójność nazwy/lokalizacji skryptu (mysscript.js). Jest to również wtyczka ajaxy, którą można wielokrotnie wywoływać na stronie.Sprawdź, czy zewnętrzny skrypt jest ładowany.
Jeśli mogę zweryfikować skrypt nie jest załadowany będę go ładować przy użyciu:
jQuery.getScript()
Jak mogę sprawdzić, czy skrypt został załadowany, ponieważ nie chcę ten sam skrypt załadowany na stronie więcej niż raz? Czy nie jest to coś, o co nie powinienem się martwić z powodu buforowania skryptu?
Aktualizacja: I nie może mieć kontrolę nad tym, kto korzysta z tej wtyczki w naszej organizacji i nie może być w stanie egzekwować, że skrypt nie jest już na stronie z lub bez konkretnego ID, ale nazwa skryptu zawsze będzie w tym samym miejscu o tej samej nazwie. Mam nadzieję, że będę mógł użyć nazwy skryptu, aby sprawdzić, czy rzeczywiście jest załadowany.
Bez głosów, w przeciwnym razie dałbym +1 tej odpowiedzi. – shanabus
To była dobra odpowiedź, niestety metoda jquery.getScript dodaje skrypt bez określonego źródła. Więc nie mogłem go znaleźć. Część odpowiedzi wykorzystałem, by rozwiązać problem +1. – AGoodDisplayName
@AGoodDisplayName W wywołaniu zwrotnym dla '$ .getScript()' możesz ustawić flagę globalną, którą można sprawdzić: '$ .getScript (', function() {window.myCustomFlag = true;}')'. Następnie możesz po prostu sprawdzić, czy istnieje konkretny element '
Utwórz znacznik skryptu z określonym identyfikatorem, a następnie sprawdź, czy ten identyfikator istnieje?
Można również przechodzić między znacznikami skryptu sprawdzającymi skrypt "src" i upewnić się, że nie zostały one załadowane z tą samą wartością, której chcesz uniknąć?
Edycja: po informacji zwrotnej, że przykładowy kod byłyby przydatne:
Źródło
2012-03-01 17:49:45 MyStream
+1 za dobrą odpowiedzią zanim pytanie zostało zaktualizowane – zeroef
Jest to idealne rozwiązanie. Polecam drugi. –
Byłoby świetnie, gdyby można umieścić kod z tymi pomysłami. –
Ten wątek znajduje się na górze znaczników SO jquery Pytania i ma ogromną różnorodność metod, aby sprawdzić exisitng skryptu
Best way to use Google's hosted jQuery, but fall back to my hosted library on Google fail
wiele opinii na temat różnych metod
Źródło
2012-03-01 17:57:53 charlietfl
Dobra odpowiedź, dla innego pytania, które leżało mi na sercu w kwestii CDN-ów. +1 – AGoodDisplayName
Był teraz bardzo proste, że zdaję sobie sprawę, jak to zrobić, dzięki wszystkie odpowiedzi za doprowadzenie mnie do rozwiązania. Musiałem zrezygnować z .getScript() w celu określenia źródła skryptu ... czasami najlepsze jest robienie rzeczy ręcznie.
Rozwiązanie
Źródło
2012-03-01 19:16:38 AGoodDisplayName
Innym sposobem sprawdzenia skryptu zewnętrznego jest załadowany lub nie, można użyć danych funkcję jQuery i przechowywać flagę walidacji. Przykład jak:
Źródło
2014-06-12 04:37:32
Działa dobrze dla tego, co musiałem zrobić. dzięki –
Scalanie kilku odpowiedzi z góry na łatwym w użyciu funkcja
Źródło
2017-06-15 19:53:35