2016-04-09 4 views
0

Ich versuche, meine js Dateien zu laden, ohne sie auszuführen. Mein CodeSkript Preloading schlägt fehl in Chrome

for(var i=0; i<preload.length; i++){ 
     o = document.createElement('Object'); 
     o.data = preload[i]; 
     o.width = 1; 
     o.height = 1; 
     o.style.visibility = "hidden"; 
     o.type = "text/cache"; 
     o.className = "hidden"; 
     console.log("Creating: ",o); 

     o.onload = function(){ 
      console.info("Trying to load ",this.data," : ",i); 
      itemloaded(this); 
     } 
     // all others require body 
     document.body.appendChild(o); 
     } 

Dies funktioniert perfekt in Firefox und IE, aber in Chrom nur das das Protokoll für Creating ausgelöst wird, die zeigt, o ist eine anonyme Funktion, während FF und IE sind sie als Object Berichterstattung und Chrom nie scheint die onload

+0

Es könnte eine gute Idee sein, den "onload" -Handler einzurichten, * bevor * Sie die URL ('data') setzen. – Pointy

+0

@Pointy Ich habe auch versucht, aber es machte keinen Unterschied – btdev

Antwort

-1

auslösen warum nicht commonjs oder amd verwenden? oder versuchen Sie es.

var script = document.createElement('script'); 
script.src = 'http://path/to/your/script.js'; 
script.onload = function() { 
// do something here 
} 

document.head.appendChild(script); 
+0

es ist kein einziges Skript. Ich möchte sie nicht ausführen, bis alle geladen sind. Ihre Methode führt das Skript automatisch aus, sobald es geladen wird – btdev