Quando abro as Ferramentas do desenvolvedor no Google Chrome, vejo todos os tipos de recursos como Perfis, Linhas de tempo e Auditorias, mas faltam funcionalidades básicas como definir pontos de interrupção nos arquivos js e no código html e javascript! Tentei usar o console javascript, que é um bug - por exemplo, quando ele encontra um erro de JS, não consigo sair dele a menos que atualize a página inteira. Alguém pode ajudar?
210
Respostas:
Use a guia fontes, você pode definir pontos de interrupção no JavaScript lá. Na árvore de diretórios abaixo (com as setas para cima e para baixo), você pode selecionar o arquivo que deseja depurar. Você pode obter um erro pressionando retomar no lado direito da mesma guia.
fonte
<script> your code </script>
adicione um nome como:<script> your code //# sourceURL=somename.js </script>
Isso é explicado melhor em uma resposta abaixoVocê está falando sobre código em
<script>
tags ou nos atributos da tag HTML, como este?De qualquer forma, a
debugger
palavra - chave assim funcionará:O Chrome não fará uma pausa às
debugger
s se as ferramentas de desenvolvimento não estiverem abertas.Você também pode definir pontos de interrupção de propriedade em arquivos e
<script>
tags JS :fonte
Sources
vez deScripts
agora.Você também pode dar um nome ao seu script:
<script> ... (your code here) //# sourceURL=somename.js </script>
ofcourse substitua "somename" por algum nome;) e você o verá no depurador do chrome em "Fontes> top> (sem domínio)> somename.js" como um script normal e você poderá depurá-lo como outros scripts
fonte
Atualize a página que contém o script enquanto as ferramentas do desenvolvedor estão abertas na guia scripts. Isso adicionará uma entrada (programa) na lista de arquivos que mostra o html da página, incluindo o script. A partir daqui, você pode adicionar pontos de interrupção.
fonte
Outro truque simples e intuitivo para depurar especialmente scripts dentro de html retornados pelo ajax, é colocar temporariamente console.log ("test") dentro do script.
Depois de disparar o evento, abra a guia do console nas ferramentas do desenvolvedor. você verá o link do arquivo de origem mostrado no lado direito da instrução de impressão de depuração "test". basta clicar na fonte (algo como VM4xxx) e agora você pode definir o ponto de interrupção.
PS: além disso, você pode considerar colocar a instrução "debugger" se estiver usando o chrome, como o sugerido pelo @Matt Ball
fonte
Minha situação e o que fiz para corrigi-lo:
tenho um arquivo javascript incluído em uma página HTML da seguinte maneira:
Nome da página: test.html
Agora, entrando no Javascript Debugger no Chrome, clico na guia Scripts e desço a lista como mostrado acima. Posso ver claramente scripts / common.js, no entanto, NÃO pude ver a página html atual test.html no menu suspenso, portanto, não pude depurar o javascript incorporado:
Isso foi desconcertante. No entanto, quando removi o tipo obsoleto = "text / javascript" do script incorporado:
..e atualizou / recarregou a página, pronto, ela apareceu na lista suspensa e tudo estava bem novamente.
Espero que isso seja útil para quem está tendo problemas para depurar o javascript incorporado em uma página html.
fonte
type
é um atributo necessário. No HTML5, é opcional.<div>
me impediu de ver o código no depuradorAdicionando
debugger;
no topo do meu script funcionou para mim.fonte
Eu também estava tendo o mesmo problema: como depurar JavaScript dentro de
<script>
tags. Mas então eu o encontrei na guia Fontes, chamada "(índice)", entre parênteses. Clique no número da linha para definir pontos de interrupção.Esse é o Chrome 71.
fonte
Se você não conseguir ver a guia "Scripts", verifique se está iniciando o Chrome com os argumentos certos. Eu tive esse problema quando eu lançado Chrome para a depuração do lado do servidor JavaScript com o argumento
--remote-shell-port=9222
. Não tenho problema se eu iniciar o Chrome sem argumentos.fonte
Me deparei com esse problema, no entanto, minha função embutida estava dentro de uma visão angularJS. Portanto, no carregamento, não pude acessar o script embutido para adicionar a depuração, pois apenas o index.html estava disponível na guia de fontes do depurador.
Isso significava que, quando eu estava abrindo a visualização específica com o meu inline (não tinha escolha), ela não estava acessível.
A única maneira que consegui atingi-lo foi colocar uma função incorreta ou chamar dentro da função JS embutida.
Minha solução incluiu:
Isso significa que, quando cliquei no meu botão, fui solicitado no console do chrome.
O importante aqui foi a fonte disso:
VM5658:6
clicar nisso me permitiu percorrer a linha e manter o ponto de interrupção lá para mais tarde.Maneira extremamente complicada de alcançá-lo. Mas funcionou e pode ser útil ao lidar com aplicativos de página única que carregam dinamicamente suas visualizações.
o
VM[n]
valor não tem valor significativo e on
on equivale ao ID do script. Esta informação pode ser encontrada aqui: Chrome "[VM]"fonte
Usando o Visual Studio (2012), tive o mesmo problema e mudei para o IIS Express resolveu o problema!
A
script
tagtype
atributo não foi levado em consideração.Por alguma razão, o Visual Studio Development Server não fornece tudo o que o Chrome precisa para ativar os pontos de interrupção.
fonte
Eu sei que o Q não é sobre,
Firefox
mas eu não queria adicionar uma cópia desta pergunta apenas para respondê-la.Para o Firefox, você precisa adicionar
debugger;
para poder fazer o que @ matt-ball sugeriu para ascript
tag.Portanto, no seu código, você adiciona
debugger
acima da linha que deseja depurar e pode adicionar pontos de interrupção. Se você acabou de definir os pontos de interrupção no navegador, ele não será interrompido.fonte
Esta é uma extensão da resposta de Rian Schmits acima. No meu caso, eu tinha o código HTML incorporado no meu código JavaScript e não conseguia ver nada além do código HTML. Talvez a Depuração do Chrome tenha mudado ao longo dos anos, mas clicar com o botão direito do mouse na guia Fontes / Fontes me apresentou a pasta Adicionar à área de trabalho . Consegui adicionar todo o meu projeto, o que me deu acesso a todos os meus JavaScripts. Você pode encontrar mais detalhes neste link . Espero que isso ajude alguém.
fonte