Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2014, 20:29
videlxu
 
Fecha de Ingreso: diciembre-2013
Mensajes: 108
Antigüedad: 10 años, 4 meses
Puntos: 1
Problemas al cargar javascript dentro de un div con ajax

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 jQuery.noConflict(); 
   
j(document).ready(function(){
        Array.
prototype.map = function(fun
        { 
                if(
typeof fun!=="function"){return false;} 
                var 
0this.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.