Script externo Javascript carregando estranheza
Estou mantendo um aplicativo javascript legado que tem seus componentes divididos em 4 arquivos J
São "Default.aspx", "set1.aspx", "set2.aspx" e "set3.aspx". As páginas ASPX gravam JS compactado de vários arquivos de origem (todos os diferentes) pertencentes ao respectivo conjunto e cabeçalho do tipo de conteúdo definido como "text / javascript".
O aplicativo é chamado adicionando uma referência ao primeiro conjunto e criando o objeto de entrada principa
<script src="/app/default.aspx" type="text/javascript"></script>
<script type="text/javascript>
var ax;
// <body onload="OnLoad()">
function OnLoad() {
ax = new MyApp(document.getElementById("axTargetDiv"));
}
</script>
No final do primeiro conjunto de scripts (default.aspx) está o seguinteexat code:
function Script(src) {
document.write('<script src="' + src + '" type="text/javascript"></script>');
}
Script("set1.aspx?v=" + Settings.Version);
Que carrega o segundo conjunto de scripts (set1.aspx). E isso funciona sem erros nos principais navegadores (IE6-8 Firefox Safari Opera Chrome).
No entanto, como eu tenho trabalhado nesse script por algum tempo silencioso, gostaria de simplificar as chamadas de funções em muitos lugares e, por engano, inline a função Script acima, resultando no seguinte código:
document.write('<script src="set1.aspx?v=' + Settings.Version + '" type="text/javascript"></script>');
Qual, quando testado com uma página de teste, agora gera o seguinte erro em todos os navegadores:
MyApp is not defined.
Isso acontece na linha:ax = new MyApp(...
como depurador do Visual Studio JS Firebug report
Tentei vários métodos nas 4 primeiras respostas postadas nesta pergunta sem sucesso. A única coisa que permitirá que o MyApp seja carregado com êxito é apenas colocando o código "adicionar script" real dentro de uma função (ou seja, odocument.write('script')
linha)
Se eu colocar odocument.write
linha dentro de uma função, funciona, caso contrário, não funciona. O que está acontecendo
divisão e / ou escape do texto do script não funcion