Vamos lidar com o primeiro problema primeiro: 1. Verifique o código -fonte da função recomendado por esta função abaixo do artigo
Na verdade, é muito simples, basta clicar na lupa para selecionar a recomendação.
Este VotePost (CB_ENTRYID, 'DIGG') é a função chamada pelo botão recomendado. Não é muito simples?
O segundo problema é localizar o local do arquivo em que a função está localizada.
De fato, também é muito simples. Obviamente, amigos que não estão familiarizados com o console podem não saber como lê -lo.
Eu digito votost no console e pressiono Enter,
O código-fonte da função é exibido aproximadamente e existe um link blog-common.js? V = we8o1xrgctu07qvwyqerqd7aa8fdjp_dgoe-crat3k1: 1 O que isso significa?
O subsequente v = we8o1xrgctu07qvwyqerqd7aa8fdjp_dgoe-crat3k1 é ignorado diretamente.
PS: Se você quiser saber o que é isso, na verdade é um número de versão. Quanto ao que faz, é frequentemente impedir o cache. Pesquise detalhes online.
blog-common.js: 1 significa quase isso. .
blog-common.js é o arquivo JS onde esta função está localizada
1 é o número da linha em que o código está localizado.
Clique neste link diretamente para saltar para o painel de fontes. Este é o painel de origem, a função mais importante da depuração, e será introduzida lentamente mais tarde.
Mas todo o código está em uma linha, como olhamos para ela? Os 4946 caracteres são todos reduzidos em uma linha. .
O Chrome nos fornece uma função de formatação de código, clique no botão de impressão bonito abaixo para formatar o código.
Após a conclusão da formatação, será muito bonito. Quanto a você entender ou não, isso é outra questão.
Algumas pessoas não conseguem entender, talvez o código tenha sido compilado por ferramentas como UglifyJs, fechamento do Google etc., como o arquivo jQuery.min.js.
Também pode ser que seu nível seja muito baixo e você não possa entender o código escrito pelo mestre por enquanto, então não posso fazer nada a respeito. Você só pode trabalhar duro para melhorar sua força.
Se a formatação é suficiente, não se preocupe, se eu estiver aqui, por que você está em pânico?
Volte para o painel do console agora.
Você tem o prazer de encontrar que o blog-common.js? V = we8o1xrgctu07qvwyqerqd7aa8fdjp_dgoe-crat3k1: 91
O número da linha se tornou 91. Agora clique neste link e você pode pular para a posição formatada correspondente. Não é super conveniente? .
A última pergunta é modificar a função para invalidá -la. Este é o mais simples, muito mais simples que o agora, mas muitas pessoas não podem operá -lo, então eu o tirei especialmente e falei sobre isso.
Primeiro de tudo, sabemos que a função recomendada para chamar essa função é o VotePost (CB_ENTRYID, 'DIGG') e está escrito diretamente e vinculado por OnClick no HTML.
Portanto, essa função é uma função global que pode ser chamada em todos os lugares, então o que isso significa?
Isso significa que podemos modificá -lo, é como uma variável global, você pode modificá -lo em qualquer lugar, certo? Então a função global deve estar correta.
Portanto, podemos simplesmente modificá -lo em uma função vazia.
votEpost = function () {}; ou votepost = $ .noop; $ .noop é uma função vazia fornecida pelo jQuery para sermos convenientes para usarmos.
Agora o VotePost é uma função vazia, então nada acontecerá se você clicar no botão Recomendação.
Obviamente, entrará em vigor novamente após a atualização da página. Nós apenas depuramos e modificamos na página. É impossível entrar em vigor permanentemente sem alterar o código -fonte do parque do blog.
Portanto, a depuração significa o processo de encontrar e eliminar erros. Se a fonte de erro estiver localizada, modifique -a e teste -a. Se estiver errado, atualize e modifique novamente, para que não haja necessidade de modificar o arquivo real, o que o tornará irrecuperável.
O conteúdo de hoje é quase tudo isso. De fato, existem poucas funções globais diretas para você depurar, porque o jQuery é popular agora, e várias ligações de eventos, como cliques e, tornando o posicionamento do código -fonte muito complicado.
Felizmente, escrevi um artigo antes e analisei esse problema com mais detalhes. Para detalhes, consulte "Uma breve discussão sobre as questões de posicionamento do código -fonte dos eventos jQuery"
Não estou familiarizado com outras estruturas, então não as analisei, mas as idéias são realmente semelhantes e deve haver um mecanismo de gerenciamento de eventos.
Hoje não tenho muito conhecimento, mas tenho que consolidá -lo sozinho, caso contrário, vou esquecê -lo em segundos.
Exercícios após a classe:
1. Analise como a função VotePost implementa a recomendada.
2. Depuração dinâmica e análise do VotePost. (Para combinar conhecimento do ponto de interrupção)
Vou falar sobre pontos de interrupção e depuração dinâmica amanhã. Não encontrei uma pergunta adequada, então farei isso primeiro. Se você tem algo adequado que precisa de depuração dinâmica, responda. .