De minha pergunta recente , eu já criei algumas funções JavaScript para visualização parcial de carregamento dinâmico. Portanto, não posso depurar nenhum JavaScript de carregamento dinâmico. Porque todo o JavaScript carregado será avaliado pela função "eval".
No entanto, descobri uma maneira de criar um novo JavaScript usando o seguinte script para criar dinamicamente o script no cabeçalho do documento atual. Todos os scripts carregados serão exibidos em HTML DOM (que você pode usar qualquer depurador para localizá-lo).
var script = document.createElement('script')
script.setAttribute("type","text/javascript")
script.text = "alert('Test!');";
document.getElementsByTagName('head')[0].appendChild(script);
A propósito, a maioria dos depuradores (IE8 Developer Toolbar, Firebug e Google Chrome) não consegue definir o ponto de interrupção em nenhum script dinâmico. Porque o script depurável deve ser carregado na primeira vez após o carregamento da página.
Você tem uma ideia para depurar conteúdo ou arquivo de script dinâmico?
Atualização 1 - Adicionar código fonte para teste
Você pode usar o seguinte arquivo xhtml para tentar depurar o valor de someVariable.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Dynamic Loading Script Testing</title>
<script type="text/javascript">
function page_load()
{
var script = document.createElement('script')
script.setAttribute("id", "dynamicLoadingScript");
script.setAttribute("type","text/javascript");
script.text = "var someVariable = 0;\n" +
"someVariable = window.outerWidth;\n" +
"alert(someVariable);";
document.getElementsByTagName('head')[0].appendChild(script);
}
</script>
</head>
<body onload="page_load();">
</body>
</html>
Da resposta, acabei de testá-lo no FireBug. O resultado deve ser exibido como as imagens abaixo.
Observe o script "dynamicLoadingScript" adicionado após o carregamento da página.
Mas não é encontrado na guia de script do FireBug
Atualização 2 - Criar ponto de interrupção de depuração no script de carregamento dinâmico
Ambas as imagens acima mostram a inserção de "depurador;" declaração em alguma linha de script pode disparar um ponto de interrupção no script de carregamento dinâmico. No entanto, ambos os depuradores não mostram nenhum código no ponto de interrupção. Portanto, é inútil fazer isso.
Obrigado,