Hola a todos,
Vengo referenciado desde este post:
http://www.forosdelweb.com/f77/howto...e-ajax-510438/
Todo funciona ok tanto en firefox como en IE, solo que en IE cuando rellamo por asi decirlo el div, se pierden los atributos del js y el Firefox no sucede.
aqui esta el link para que vean el error, consulten el utlimo link contactenos en IE, y posteriormente vuelvan a hacer click en el enlace, en IE se pierden las carateristicas tinymce que son las librerias que estoy usando para este caso
http://www.boolean.com.ve/
El codigo de mi llamadas asincronas a paginas es este:
Código:
// Documento JavaScript
// Esta función cargará las paginas
function llamarasincrono(url, id_contenedor){
var pagina_requerida = false
if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest()
} else if (window.ActiveXObject){ // pero si es IE
try {
pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){ // en caso que sea una versión antigua
try{
pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
pagina_requerida.onreadystatechange=function(){ // función de respuesta
cargarpagina(pagina_requerida, id_contenedor)
}
pagina_requerida.open('GET', url, true) // asignamos los métodos open y send
pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)){
var scs=pagina_requerida.responseText.extractScript(); //capturamos los scripts
document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText; //eliminamos los scripts... ya son innecesarios
scs.evalScript();
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
}
en el index de la pagina llamo a
Código:
<script type="text/javascript" src="jscripts/tiny_mce/tiny_mce.js"></script>
<script>
var tagScript = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
/**
* Eval script fragment
* @return String
*/
String.prototype.evalScript = function()
{
return (this.match(new RegExp(tagScript, 'img')) || []).evalScript();
};
/**
* strip script fragment
* @return String
*/
String.prototype.stripScript = function()
{
return this.replace(new RegExp(tagScript, 'img'), '');
};
/**
* extract script fragment
* @return String
*/
String.prototype.extractScript = function()
{
var matchAll = new RegExp(tagScript, 'img');
return (this.match(matchAll) || []);
};
/**
* Eval scripts
* @return String
*/
Array.prototype.evalScript = function(extracted)
{
var s=this.map(function(sr){
var sc=(sr.match(new RegExp(tagScript, 'im')) || ['', ''])[1];
if(window.execScript){
window.execScript(sc);
}
else
{
window.setTimeout(sc,0);
}
});
return true;
};
/**
* Map array elements
* @param {Function} fun
* @return Function
*/
Array.prototype.map = function(fun)
{
if(typeof fun!=="function"){return false;}
var i = 0, l = this.length;
for(i=0;i<l;i++)
{
fun(this[i]);
}
return true;
};
</script>
y en la pagina llamada en el div tengo en el head este codigo:
Código:
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "simple",
skin : "o2k7"
});
</script>
Funciona con Firefox y funciona con IE solo una vez.
Muchas gracias por la ayuda que me puedan prestar, saludos...