Hola de ante mano muchas gracias, resulta que tengo un problema que ya me esta tomando horas en resolver, tengo un div en donde cargo con ajax una pagina todo bien hasta ahí sin embargo no me funciona el javascript que esta dentro de la pagina cargada en el div ajax, antes que nada les mostrare mi programita que es un simple paginador en tiempo real:
Código PHP:
function objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function Paginacione(where,tema,nropagina,catname,topicid,ttl,p){
//donde se mostrará los registros
divContenido = document.getElementById('super-paginacion');
ajax=objetoAjax();
//uso del medoto GET
//indicamos el archivo que realizará el proceso de paginar
//junto con un valor que representa el nro de pagina
$(".paginacion").hide();
$("#load").append("<span style='color:#ff0000;'><img width='15' height='15' src='imagen/load.gif'/></span>");
ajax.open("GET", "ajax/comentario.php?temas="+tema+"&screen="+nropagina,true);
window.location.assign("posts/"+catname+"/"+topicid+"/"+ttl+".html#paginacion-"+p);
window.location.assign("posts/"+catname+"/"+topicid+"/"+ttl+".html#paginacion-"+nropagina);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
var scs=ajax.responseText.extractScript(); //capturamos los scripts
divContenido.innerHTML = ajax.responseText
scs.evalScript(); //ahora si, comenzamos a interpretar todo
}
}
//como hacemos uso del metodo GET
//colocamos null ya que enviamos
//el valor por la url ?pag=nropagina
ajax.send(null)
}
en el cod anterior ya le eh puesto un prototype que funciona muy bien:
Código PHP:
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
*/
var j = jQuery.noConflict();
j(document).ready(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;
};
});
sin embargo tengo un error por ejemplo hay 4 paginas las cuales se paginan si entro a cualquiera de ella se cargara el div y funciona todo a la perfeccion porque esta el prototype sin embargo cuando entro a otra deja de funcionar , no tengo entendido porque el prototype solo funciona una ves despues ya nada estube leyendo algo sobre :
Código PHP:
evalscripts :true
pero no se como incluirlo aca:
Código PHP:
ajax.open("GET", "ajax/comentario.php?temas="+tema+"&screen="+nropagina,true);
porfabor si alguien tiene otra solucion o otro prototype que me ayude porfabor muchas gracias por todo.