Czy istnieje prostszy (może natywny?) Sposób włączenia zewnętrznego pliku skryptu w przeglądarce Google Chrome?
Obecnie robię to tak:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
technocake
źródło
źródło
Odpowiedzi:
appendChild()
jest bardziej rodzimy sposób:źródło
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</code>, aby wstrzyknąć bezpośredni kod javascriptCzy korzystasz z frameworku AJAX? Przy użyciu jQuery byłoby to:
Jeśli nie używasz żadnego frameworka, zobacz odpowiedź Harmena.
(Być może nie warto używać jQuery tylko po to, aby zrobić jedną prostą rzecz ( a może jest ), ale jeśli już go masz, możesz go również użyć. Widziałem strony internetowe, które mają załadowane jQuery, np. Z Bootstrap, ale nadal używaj DOM API bezpośrednio w sposób, który nie zawsze jest przenośny, zamiast używać do tego już załadowanego jQuery, a wiele osób nie zdaje sobie sprawy z faktu, że nawet
getElementById()
nie działa konsekwentnie na wszystkich przeglądarkach - zobacz tę odpowiedź aby uzyskać szczegółowe informacje. )AKTUALIZACJA:
Minęły lata odkąd napisałem tę odpowiedź i myślę, że warto tutaj wskazać, że dziś możesz użyć:
aby dynamicznie ładować skrypty. Mogą one dotyczyć osób czytających to pytanie.
Zobacz także: Dyskusja płynnego 2014 Guya Bedforda: Praktyczne przepływy pracy dla modułów ES6 .
źródło
$.getScript('script.js');
lub$.getScript('../scripts/script.js');
w stosunku do dokumentu, ale może również ładować bezwzględne adresy URL, np.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
W nowoczesnych przeglądarkach możesz użyć pobierania, aby pobrać zasób ( dokumenty Mozilli ), a następnie eval, aby go uruchomić.
Na przykład, aby pobrać Angular1, musisz wpisać:
źródło
eval
z następującego komunikatu:VM1929:11 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
W chrome najlepszą opcją może być karta Snippets w sekcji Źródła w Narzędziach programisty.
Umożliwi Ci pisanie i uruchamianie kodu, na przykład na pustej stronie about:.
Więcej informacji tutaj: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=pl
źródło
Jako kontynuacja odpowiedzi @ maciej-bukowski powyżej ^^^ , w nowoczesnych przeglądarkach od teraz (wiosna 2017), które obsługują asynchronizację / czekaj, możesz załadować w następujący sposób. W tym przykładzie ładujemy bibliotekę html2canvas ładowania:
Jeśli uruchomisz fragment kodu, a następnie otworzysz konsolę przeglądarki, powinieneś zobaczyć, że funkcja html2canvas () jest teraz zdefiniowana.
źródło
źródło
Jeśli ktoś nie załaduje się, ponieważ jego skrypt narusza skrypt-src „Zasady bezpieczeństwa treści” lub „ponieważ niebezpieczne-eval” nie jest dozwolone ”, radzę używać mojego dość małego modułu-inżektora jako fragmentu narzędzi programistycznych, wtedy będziesz mógł załadować w ten sposób:
to rozwiązanie działa, ponieważ:
źródło
Używam tego, aby załadować obiekt nokaut ko w konsoli
lub host lokalnie
źródło
Zainstaluj tampermonkey i dodaj następujący skrypt użytkownika z jednym (lub więcej)
@match
określonym adresem URL strony (lub dopasowaniem wszystkich stron :)https://*
np .:Ilekroć potrzebujesz biblioteki na konsoli lub we fragmencie, włącz określony UserScript i odśwież.
To rozwiązanie zapobiega zanieczyszczeniu przestrzeni nazw . Możesz użyć niestandardowych przestrzeni nazw, aby uniknąć przypadkowego zastąpienia istniejących zmiennych globalnych na stronie.
źródło