Dynamicznie dodawany skrypt nie pojawia się w sekcji skryptów debugera przeglądarki.
Wyjaśnienie:
Muszę użyć i użyłem
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
aby myScript.js można było ładować dynamicznie po spełnieniu jakiegoś warunku ... A myFunction można wywołać dopiero po załadowaniu całego skryptu ...
Jednak przeglądarki nie wyświetlają dynamicznie ładowanego pliku myScript.js w sekcji skryptów debugera.
Czy jest inny sposób, aby wszystkie cele zostały osiągnięte, co sprawi, że będzie można debugować dynamicznie ładowany skrypt w samej przeglądarce?
javascript
debugging
dynamic
loaded
TwiToiT
źródło
źródło
debugger;
do automatycznego zatrzymania w dynamicznie załadowanym skrypcie, patrz javascript.info/debugging-chromeOdpowiedzi:
Możesz nadać dynamicznie ładowanemu skryptowi nazwę, tak aby był wyświetlany w debugerze JavaScript przeglądarki Chrome / Firefox. Aby to zrobić, umieść komentarz na końcu skryptu:
//# sourceURL=filename.js
Ten plik zostanie wyświetlony na karcie „Źródła” jako
filename.js
. Z mojego doświadczenia wynika, że w nazwie można użyć znaku \ 's, ale przy używaniu \ \ \ \' zachowuję się dziwnie.Aby uzyskać więcej informacji, zobacz: Punkty przerwania w dynamicznym wycofywaniu kodu JavaScript // @ sourceurl
źródło
Możesz użyć
//# sourceURL=
i//# sourceMappingURL=
na końcu pliku skryptu lub tagu skryptu.UWAGA:
//@ sourceURL
i//@ sourceMappingURL
są przestarzałe.źródło
Próbowałem użyć „// # sourceURL = nazwa_pliku.js”, który został zasugerowany jako obejście przez OP, ale nadal nie był wyświetlany w panelu Źródła, chyba że istniał już na moich kartach od poprzedniego czasu, kiedy spowodowało to wyjątek.
Kodowanie „debuggera”; linia zmusiła go do zerwania w tym miejscu. Następnie, gdy znalazłem się w moich zakładkach w panelu Źródła, mogłem ustawić punkty przerwania jak zwykle i usunąć "debugger"; linia.
źródło
debugger;
, a DevTools musiało być otwarte podczas ładowania skryptu.//# sourceURL=browsertools://yourdomaingoeshere.com/action-openuwws.js
Zwróć uwagę, że plik źródłowy pojawiający się w ten sposób w zakładce źródeł pojawi się w grupie (bez domeny) i jeśli chcesz go debugować, będziesz musiał dodać
debugger;
linię w swoim kodzie, sprawić, by ta linia została wykonana (zwykle w początek wykonywania pliku źródłowego), a następnie dodaj punkty przerwania w dowolnym miejscu.W przypadku debugowania etapów produkcji, na których prawdopodobnie nie będzie żadnych
debugger;
wierszy w kodzie, możesz to zrobić, wykonując lokalną mapę za pomocą CharlesProxy do swojej „świeżej kopii pliku źródłowego z wstawioną linią debbugera”.źródło
Próbując wyśledzić tego typu rzeczy w IE, otwieram narzędzia programistyczne (F12), a następnie znajduję, gdzie umieścić punkt przerwania, używając następującego wiersza w konsoli:
debugger;myFunction();
Spowoduje to przełączenie na kartę debugera, w której możesz wejść
myFunction()
i ustawić punkt przerwania.źródło