Script externo JavaScript cargando extrañeza

Mantengo una aplicación de JavaScript heredada que tiene sus componentes divididos en 4 archivos JS.

Son "Default.aspx", "set1.aspx", "set2.aspx" y "set3.aspx". Las páginas ASPX escriben JS comprimido de múltiples archivos fuente (todos diferentes) pertenecientes a su conjunto respectivo y establecen el encabezado de tipo de contenido en "texto / javascript".

a aplicación se invoca agregando una referencia al primer conjunto y creando el objeto de entrada principal.

<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>

l final del primer conjunto de scripts (default.aspx) se encuentra el siguienteexact código:

function Script(src) {
    document.write('<script src="' + src + '" type="text/javascript"></script>');
}

Script("set1.aspx?v=" + Settings.Version);

Lo que carga el segundo conjunto de scripts (set1.aspx). Y esto funciona sin ningún error en todos los principales navegadores (IE6-8 Firefox Safari Opera Chrome).

Sin embargo, como he estado trabajando en este script por algún tiempo, me gustaría simplificar las llamadas a funciones en muchos lugares y he insertado erróneamente la función de script anterior, dando como resultado el siguiente código:

document.write('<script src="set1.aspx?v=' + Settings.Version + '" type="text/javascript"></script>');

Que, cuando se prueba con una página de prueba, ahora arroja el siguiente error en todos los navegadores:

MyApp is not defined.

Esto sucede en la línea:ax = new MyApp(... como depurador de Visual Studio JS Firebug lo informa.

He probado varios métodos en las primeras 4 respuestas publicadas a esta pregunta en vano. Lo único que permitirá que MyApp se cargue correctamente es solo colocando el código real de "agregar script" dentro de una función (es decir, eldocument.write('script') línea):

Si pongo ladocument.write línea dentro de una función, funciona, de lo contrario, no lo hace. ¿Qué esta pasando

Dividir y / o escapar del texto del script no funciona.

Respuestas a la pregunta(4)

Su respuesta a la pregunta