Bien. Ya he acotado un poco más el error. Resulta que entra en la función evalScript() y ahí es donde falla (el código es de interpretadorAjax.js). He puesto unos alerts, y os pongo el código y comento el resultado de los alerts a modo de secuencia de ejecución.
En ajax.js
Código:
scs.evalScript();
alert('aki: '+scs+' ----EVAL: '+scs.evalScript());
En interpretadorAjax.js
Código:
Array.prototype.evalScript = function(extracted)
{
var s=this.map(function(sr){
alert('dentro');
var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
alert('SC: '+sc);
if(window.execScript){
alert('window.execScript: '+window.execScript);
alert('window.execScript(sc): '+window.execScript(sc));
window.execScript(sc);
}
else
{
alert('window.setTimeout(sc,0): '+window.setTimeout(sc,0));
window.setTimeout(sc,0);
}
});
return true;
};
Con Firefox siempre entra en el else, con lo cual siempre ejecuta window.setTimeout(sc,0);
Sin embargo, IE accede por el if a window.execScript(sc); y ahí es donde se queja.
Los alerts en IE muestran:
dentro.
SC:
window.execScript(sc): function execScript(sc){[native code]}
y sale el error.
Los alerts en Firefox:
dentro
SC:
window.setTimeout(sc,0): 2
dentro
SC:
window.setTimeout(sc,0): 4
dentro
SC: Nifty("div#box","big");
window.setTimeout(sc,0): 6
dentro
SC: var slider1=new accordion.slider("slider1"); slider1.init("slider");
window.setTimeout(sc,0): 8
dentro
SC:
window.setTimeout(sc,0): 10
dentro
SC:
window.setTimeout(sc,0): 12
dentro
SC: Nifty("div#box","big");
window.setTimeout(sc,0): 14
dentro
SC: var slider1=new accordion.slider("slider1"); slider1.init("slider");
window.setTimeout(sc,0): 16
Ya continuación el alert que hay en ajax.js
aki: <script type="text/javascript" src="js/script_acordeon.js"></script>,<script type="text/javascript" src="js/niftycube.js"></script>,<script>Nifty("div#box","big");</script>,<script type="text/javascript">
var slider1=new accordion.slider("slider1");slider1.init("slider") ;</script>
----EVAL: true
Y se ejecuta correctamente.
¿Podría ser que esa función "window.execScript(sc)" no funcionara? ¿Le véis alguna solución?
Gracias. Un saludo.