Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/10/2007, 05:02
Cyttorak
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Re: ejecutar js antes del onload pero con todo el html descargado

uuummm, pues yo juraria que se espera a que se cargue todo

El codigo es el siguiente

Código PHP:
document.addEventListener(
    
'load',
    function 
ujsenabledCleanURI() {

        
/********************************
        ** INICIO CONFIGURACION BASICA **
        *********************************/
        
var linkNuevoText=null;//"[...]"; //Si no es null se crea un link nuevo con ese texto. Si es null se sobreescribe el antiguo
        
var fixLinkType=0//1 = links de redireccion, 2 = links en javaScript window.open, 0 = ambos
        /*****************************
        ** FIN CONFIGURACION BASICA **
        ******************************/

        
var getJavascript = function (_link) {
            var 
_javascript=null;
            var 
protocoloJS=(_link.protocol!=null && _link.protocol.toLowerCase()=='javascript:');
            if (
protocoloJS || _link.hash=='#' || _link.href=='#') {
                var 
_onClick=_link.getAttribute('onclick');
                if (
_onClick!=null && (_onClick=_onClick.replace(/^s+|s+$/,"")).length>0_javascript=_onClick;
            }
            if (
protocoloJS) {
                var 
jsHref=_link.href.replace(/^s*(javascripts*:s*(voids*(s*0?s*)s*;?)?)?|s+$/,"");
                if (
jsHref.length>0) {
                    if (
_javascript==null_javascript=jsHref+";return false;";
                    else 
_javascript="if (function(){"+_javascript+"}()) {"+jsHref+"};return false;";
                }
            }
            return (
_javascript!=null && (_javascript=_javascript.replace(/;;+/g,";").replace(/^s+|s+$/,"")).length>0)?_javascript:null;
        }
        var 
getRegExpIzquierda = function(regExpStr) {
            return (
regExpStr==null || regExpStr.length==0)?null:new RegExp(regExpStr,"i");
        }
        var 
getRegExpDerecha = function(regExpStr) {
            return (
regExpStr==null || regExpStr.length==0)?null:new RegExp(regExpStr+"(?!"+regExpStr+")","i");
        }

        
/**********************************
        ** INICIO CONFIGURACION AVANZADA **
        ***********************************/
        
var httpMatch=getRegExpDerecha("https?(:|%3a)(\\/|%2f)(\\/|%2f)");
        var 
urlMatch=/window.opens*(s*["']([^"']*)["']/i;
        var 
linkPadreExcluidos getRegExpIzquierda(
                                                            
"https?(:|%3a)(\\/|%2f)(\\/|%2f)("+
                                                            
"translate\\.google\\.com"+
                                                            
")"
                                                        
); // links originales que se excluyen
        
var linkHijoExcluidos getRegExpIzquierda(
                                                            
"https?(:|%3a)(\\/|%2f)(\\/|%2f)("+
                                                            
document.location.hostname.replace(/./g,"\\.")+
                                                            
")"
                                                        
); // links parseados que se excluyen
        
var limpiarMas=new Array (
            /(?|&)[^=]+=(&|$)/
g,"$1"//Quitar parametros vacios
//            /(#|\?|&)$/g,"", //Quitar sufijos vacios
            
/^s+|s+$/g,""//trim
            
/(https?://www.20minutos.es/noticia/[0-9]+).*/,"$1"
        
); //Limpieza extra del link final
        /*******************************
        ** FIN CONFIGURACION AVANZADA **
        ********************************/

        
var x;
        var 
xx;
        var 
_aux;
        var 
_hrefLimpia;
        var 
_hrefSucia;
        var 
_hrefJS;
        var 
_linkViejo;
        var 
_javascript;
        var 
_search;
        var 
_hostname;
        var 
_match;
        var 
_onClick;
        var 
_target;
        var 
_relAttribute;
        var 
_linkNuevo;
        var 
_index;
        var 
_vieneDeJS;
        var 
_erroresTxt="";
        var 
_links=document.links;
        
        for(
x=_links.length-1;x>=0;x--) {
            
_linkViejo=_links[x];
            
_hrefSucia=_linkViejo.href;
            if (
linkPadreExcluidos==null || !linkPadreExcluidos.test(_hrefSucia)) {
                
_vieneDeJS=false;
                
_hrefLimpia=null;
                
_hrefJS=null;
                try {
                    
_javascript=getJavascript(_linkViejo);
                    if(
_javascript && fixLinkType!=1) {
                        
_match=_javascript.match(urlMatch);
                        if (
_match!=null) {
                            
_hrefLimpia=(_hrefJS=(RegExp.$1)).replace(///g,'\/');
                            
_hrefSucia=_hrefLimpia;
                        }
                    }
                    if(
fixLinkType!=&& (_hrefSucia.toLowerCase().indexOf("http")==0)) {
                        
_index=_hrefSucia.indexOf('?')+1;
                        
_search=(_index>0)?_hrefSucia.substr(_index):null;
                        if (
_search!=null && _search.length>0) {
                            if ((
_hrefSucia!=_linkViejo.href)||(_linkViejo.hostname && !_linkViejo.hostname.match(/w3c?.org$/))) {
                                
_match = (_search?_search.match(httpMatch):null);
                                if (
_match!=null) {
                                    
_hrefLimpia=_search.substr(_match.index).replace(/[&#].*$/g,'');
                                    
if (_hrefLimpia.indexOf("://")==-1_hrefLimpia=unescape(_hrefLimpia);
                                    
_hrefSucia=_hrefLimpia;
                                }
                            }
                        }
                    }
                    if (
limpiarMas!=null && limpiarMas.length>0) {
                        
_aux=_hrefSucia;
                        for(
xx=0;xx<limpiarMas.length;xx=xx+2) {
                            
_hrefSucia=_hrefSucia.replace(limpiarMas[xx],limpiarMas[xx+1]);
                        }
                        if(
_aux!=_hrefSucia_hrefLimpia=_hrefSucia;
                    }
                    if (
_hrefJS!=null_javascript=_javascript.replace(_hrefJS,"this.href","g").replace(/["']this.href["']/g,"this.href");
                    if(_hrefLimpia!=null && !(linkHijoExcluidos && linkHijoExcluidos.test(_hrefLimpia))) {
                        if(linkNuevoText!=null) {
                            _linkNuevo=document.createElement('
a');
                            _target = _linkViejo.getAttribute("target");
                            if (_target!=null && _target.length>0) _linkNuevo.setAttribute('
target',_target);
                            _linkNuevo.appendChild(document.createTextNode(linkNuevoText));
                            _linkViejo.parentNode.insertBefore(document.createTextNode(' '),_linkViejo.nextSibling);
                            _linkViejo.parentNode.insertBefore(_linkNuevo,_linkViejo.nextSibling.nextSibling);
                        } else _linkNuevo=_linkViejo;
                        
                        _relAttribute = _linkNuevo.getAttribute('
rel');
                        _relAttribute = _relAttribute ? ( _relAttribute + ' ' ) : '';
                        _linkNuevo.setAttribute('
rel',_relAttribute+'redirect');
                        _linkNuevo.title = (_linkNuevo.title?(_linkNuevo.title+' 
'):'')+'URL original'+_linkViejo.href;
                        _linkNuevo.setAttribute('
replacedurl',_linkViejo.href);
                        _linkNuevo.setAttribute('
href,_hrefLimpia);
                        if (
_hrefJS!=null_linkNuevo.setAttribute("onClick",_javascript);
                    }
                } catch (
_e) {_erroresTxt+=("\n\n"+_linkViejo.href+"\n"+_e);}
            }
        }
        if (
_erroresTxt!=null && _erroresTxt.length>0alert(_erroresTxt);
    },
    
false
); 
__________________
Visita www.GranFuckultad.tk y goza de risa