Foros del Web » Programando para Internet » Javascript »

Funciona en firefox y no en IE carga dinamica js

Estas en el tema de Funciona en firefox y no en IE carga dinamica js en el foro de Javascript en Foros del Web. Buenas compañeros, estoy teniendo problemas en IE para poder cargar un js dinamicamente. Este es mi código: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var ...
  #1 (permalink)  
Antiguo 29/03/2012, 01:59
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 15 años, 10 meses
Puntos: 6
Funciona en firefox y no en IE carga dinamica js

Buenas compañeros, estoy teniendo problemas en IE para poder cargar un js dinamicamente. Este es mi código:

Código Javascript:
Ver original
  1. var Asset = null;
  2.     var CXMW = {  //wapi
  3.  
  4.         secuency:0,
  5.         widgets:{},
  6.         site:'#site#',
  7.         queued:new Array,
  8.         loading:{},
  9.         widget:function(options){
  10.                    
  11.             var loadwidget = function(){
  12.                 options.id = CXMW.secuency++;
  13.                 var widget = options.widget;
  14.                 CXMW.getWidget(widget,options);
  15.                 return CXMW.widgets[options.id];
  16.             }
  17.            
  18.             var test_mootools = function(){
  19.                 if (typeof window.MooTools == "undefined") {
  20.                     var script_tag = document.createElement('script');
  21.                     script_tag.setAttribute("type","text/javascript");
  22.                     script_tag.setAttribute("src","https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools.js")
  23.                     if (window.addEventListener) window.addEventListener('load', loadwidget(), false);
  24.                     else if (window.attachEvent) window.attachEvent('onload', loadwidget());
  25.                     document.getElementsByTagName("head")[0].appendChild(script_tag);
  26.                     } else {
  27.                         loadwidget();
  28.                     }
  29.                 }
  30.             test_mootools();
  31.                
  32.         },
  33.  
  34.         getWidget:function(widget,options){
  35.                 if(!Asset){
  36.                         var Asset={javascript:function(d,b){if(!b){b={};}var a=new Element("script",{src:d,type:"text/javascript"}),e=b.document||document,c=b.onload||b.onLoad;
  37.                         delete b.onload;delete b.onLoad;delete b.document;if(c){if(typeof a.onreadystatechange!="undefined"){a.addEvent("readystatechange",function(){if(["loaded","complete"].contains(this.readyState)){c.call(this);
  38.                         }});}else{a.addEvent("load",c);}}return a.set(b).inject(e.head);},css:function(d,a){if(!a){a={};}var b=new Element("link",{rel:"stylesheet",media:"screen",type:"text/css",href:d});
  39.                         var c=a.onload||a.onLoad,e=a.document||document;delete a.onload;delete a.onLoad;delete a.document;if(c){b.addEvent("load",c);}return b.set(a).inject(e.head);
  40.                         },image:function(c,b){if(!b){b={};}var d=new Image(),a=document.id(d)||new Element("img");["load","abort","error"].each(function(e){var g="on"+e,f="on"+e.capitalize(),h=b[g]||b[f]||function(){};
  41.                         delete b[f];delete b[g];d[g]=function(){if(!d){return;}if(!a.parentNode){a.width=d.width;a.height=d.height;}d=d.onload=d.onabort=d.onerror=null;h.delay(1,a,a);
  42.                         a.fireEvent(e,a,1);};});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1);}return a.set(b);},images:function(c,b){c=Array.from(c);var d=function(){},a=0;
  43.                         b=Object.merge({onComplete:d,onProgress:d,onError:d,properties:{}},b);return new Elements(c.map(function(f,e){return Asset.image(f,Object.append(b.properties,{onload:function(){a++;
  44.                         b.onProgress.call(this,a,e,f);if(a==c.length){b.onComplete();}},onerror:function(){a++;b.onError.call(this,a,e,f);if(a==c.length){b.onComplete();}}}));
  45.                         }));}};
  46.                     }
  47.                     if(CXMW[widget]){  // esta definido el widget en el API ??
  48.                         CXMW.widgets[options.id] = (CXMW.widgets[options.id])  ? CXMW.widgets[options.id] : new CXMW[widget](options);
  49.                     }else{
  50.                         if(CXMW.loading[widget]){CXMW.queued.push(options);}      // voy encolando las peticiones hasta finalizar la carga
  51.                         else {
  52.                             CXMW.loading[widget] = true;
  53.                             CXMW.queued.push(options);
  54.                             var myload = Asset.javascript(CXMW.site + widget + ".js", {
  55.                                 onLoad: function(){
  56.                                     //alert("loadedd");
  57.                                     CXMW.queued.each(function(item,index){
  58.                                         if(item.widget == widget){
  59.                                             CXMW.widgets[item.id] = (CXMW.widgets[item.id])  ? CXMW.widgets[item.id] : new CXMW[widget](item);
  60.                                             CXMW.queued.slice(index,1);
  61.                                         }
  62.                
  63.                                     });
  64.                                     CXMW.loading[widget] = false;
  65.                                     }
  66.                             });
  67.                         }    
  68.                        
  69.                                        
  70.  
  71.                     }      
  72.         }
  73.  
  74.     };

Creo que en la parte que me esta dando problemas es esta:

Código Javascript:
Ver original
  1. var test_mootools = function(){
  2.                 if (typeof window.MooTools == "undefined") {
  3.                     var script_tag = document.createElement('script');
  4.                     script_tag.setAttribute("type","text/javascript");
  5.                     script_tag.setAttribute("src","https://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools.js")
  6.                     if (window.addEventListener) window.addEventListener('load', loadwidget(), false);
  7.                     else if (window.attachEvent) window.attachEvent('onload', loadwidget());
  8.                     document.getElementsByTagName("head")[0].appendChild(script_tag);
  9.                     } else {
  10.                         loadwidget();
  11.                     }
  12.                 }
  13.             test_mootools();

Creo que es esa por que cuándo hago:

Código Javascript:
Ver original
  1. if(!Asset){
  2.                         var Asset={javascript:function(d,b){if(!b){b={};}var a=new Element("script",{src:d,type:"text/javascript"}),e=b.document||document,c=b.onload||b.onLoad;
  3.                         delete b.onload;delete b.onLoad;delete b.document;if(c){if(typeof a.onreadystatechange!="undefined"){a.addEvent("readystatechange",function(){if(["loaded","complete"].contains(this.readyState)){c.call(this);
  4.                         }});}else{a.addEvent("load",c);}}return a.set(b).inject(e.head);},css:function(d,a){if(!a){a={};}var b=new Element("link",{rel:"stylesheet",media:"screen",type:"text/css",href:d});
  5.                         var c=a.onload||a.onLoad,e=a.document||document;delete a.onload;delete a.onLoad;delete a.document;if(c){b.addEvent("load",c);}return b.set(a).inject(e.head);
  6.                         },image:function(c,b){if(!b){b={};}var d=new Image(),a=document.id(d)||new Element("img");["load","abort","error"].each(function(e){var g="on"+e,f="on"+e.capitalize(),h=b[g]||b[f]||function(){};
  7.                         delete b[f];delete b[g];d[g]=function(){if(!d){return;}if(!a.parentNode){a.width=d.width;a.height=d.height;}d=d.onload=d.onabort=d.onerror=null;h.delay(1,a,a);
  8.                         a.fireEvent(e,a,1);};});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1);}return a.set(b);},images:function(c,b){c=Array.from(c);var d=function(){},a=0;
  9.                         b=Object.merge({onComplete:d,onProgress:d,onError:d,properties:{}},b);return new Elements(c.map(function(f,e){return Asset.image(f,Object.append(b.properties,{onload:function(){a++;
  10.                         b.onProgress.call(this,a,e,f);if(a==c.length){b.onComplete();}},onerror:function(){a++;b.onError.call(this,a,e,f);if(a==c.length){b.onComplete();}}}));
  11.                         }));}};
  12.                     }
Qué justamente está en el evento load de cuando se carga el js me da el error de que el objeto no acepta esta propiedad en esta linea:

Código Javascript:
Ver original
  1. var Asset={javascript:function(d,b){if(!b){b={};}var a=new Element("script",{src:d,type:"text/javascript"}),e=b.document||document,c=b.onload||b.onLoad;

Y eso me da que pensar que mootools no está cargado aún. Algún consejo o ayudita?

Etiquetas: ajax, dinamica, firefox, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:43.