Um script adicionado dinamicamente não está aparecendo na seção de scripts do depurador do navegador.
Explicação:
Eu preciso usar e tenho usado
if( someCondition == true ){
$.getScript("myScirpt.js", function() {
alert('Load Complete');
myFunction();
});
}
para que myScript.js possa ser carregado dinamicamente ao atender a alguma condição ... E myFunction pode ser chamado somente depois de carregar todo o script ...
Mas os navegadores não estão mostrando o myScript.js carregado dinamicamente na seção de script do depurador.
Existe outra maneira de contornar para que todos os objetivos possam ser alcançados, o que tornará alguém capaz de depurar um script carregado dinamicamente no próprio navegador?
javascript
debugging
dynamic
loaded
TwiToiT
fonte
fonte
debugger;
para parar automaticamente no script carregado dinâmico, consulte javascript.info/debugging-chromeRespostas:
Você pode dar um nome ao seu script carregado dinamicamente para que ele seja exibido no depurador de JavaScript do Chrome / Firefox. Para fazer isso, você coloca um comentário no final do script:
Este arquivo será mostrado na guia "Fontes" como
filename.js
. Na minha experiência, você pode usar \ 's no nome, mas recebo um comportamento estranho se usar /' s.Para obter mais informações, consulte: Breakpoints in Dynamic JavaScript deprecation of // @ sourceurl
fonte
Você pode usar
//# sourceURL=
e//# sourceMappingURL=
no final de seu arquivo de script ou tag de script.NOTA:
//@ sourceURL
e//@ sourceMappingURL
estão obsoletos.fonte
Eu tentei usar o "// # sourceURL = filename.js" que foi sugerido como uma solução alternativa pelo OP, mas ainda não estava aparecendo para mim no painel Fontes, a menos que já existisse em minhas guias em um momento anterior, quando produziu uma exceção.
Codificando um "depurador;" a linha o forçou a quebrar naquele local. Então, uma vez que estava em minhas guias no painel Fontes, eu poderia definir pontos de interrupção normalmente e remover o "depurador;" linha.
fonte
debugger;
, e DevTools tinha que ser aberto enquanto o script estava carregando.//# sourceURL=browsertools://yourdomaingoeshere.com/action-openuwws.js
Observe que o arquivo de origem que aparece na guia de fontes desta forma aparecerá no grupo (sem domínio) e, caso queira depurá-lo, será necessário adicionar uma
debugger;
linha em seu código, fazer com que essa linha seja executada (geralmente em o início da execução de seu arquivo de origem) e, em seguida, adicione seus pontos de interrupção onde desejar.No caso de você estar depurando estágios de produção, onde provavelmente não terá
debugger;
linhas em seu código, você pode fazer isso acontecer fazendo um mapa local com CharlesProxy para sua "nova cópia do arquivo fonte com a linha de depuração inserida".fonte
Ao tentar rastrear esse tipo de coisa no IE, abro as ferramentas de desenvolvimento (F12) e descubro onde colocar o ponto de interrupção usando a seguinte linha no console:
Isso muda para a guia do depurador, onde você pode entrar
myFunction()
e definir o ponto de interrupção.fonte