2010-11-25 8 views
1

Das folgende Stück Code funktionierte in IE6 & IE7 und fast alle Versionen von FF. Es funktioniert einfach nicht in IE8. Es funktioniert nicht in dem Sinne, nachdem ich das Skript-Tag in das HTML-> HEAD-Element eingefügt habe. Das Skript wird nicht im Browser geladen (die Warnungen im Skript werden nicht angezeigt). Ich sehe, dass die Tags in den HTML-HEAD eingefügt wurden.Einschließlich JavaScript zur Laufzeit funktioniert nicht in IE8

var head = document getElementsByTagName('head')[0]; 
// Check if the script is already loaded. 
if (head){ 
    var script = document.createElement('script'); 
    script.type = 'text/javascript'; 
    script.language = 'JavaScript'; 
    script.src = '/Tolven/scripts/' + jsFileName; 
    head.appendChild(script);  
} 

Hat jemand dieses Problem? Oder irgendwelche Hinweise, um das zu lösen?

+0

Welches Framework und welche Version verwenden Sie? ('$$' ist keine native JS-Methode). – Piskvor

+0

Es ist prototype.js, ich habe die Frage geändert, jetzt JS-Methode zu verwenden. –

+0

Erhalten Sie eine Fehlermeldung in ie8? –

Antwort

1

Wenn dieses Skript in ist, ist Tag als Kopf nicht vorhanden, wenn dieses Skript geparst und ausgeführt wird. Also, von Quelle if (head) ist false.

Sie verwenden JS-Framework - so verwenden Sie es Tools. Und vergessen Sie nicht, Ihr Framework einzuschließen, bevor Sie es verwenden.

<!-- if your are using mootools --> 
<script type="text/javascript" src="mootools.js"></script> 
<script type="text/javascript"> 
    window.addEvent('domready', function() { 
    // Your code... 
    }); 
</script> 

<!-- if your are using prototype --> 
<script type="text/javascript" src="prototype.js"></script> 
<script type="text/javascript"> 
    document.observe("dom:loaded", function() { 
    // Your code... 
    }); 
</script> 
+0

Dieses Skript wird ausgeführt, wenn ich versuche, eine JS-Methode aufzurufen, die sich in der .js-Datei befindet. Bevor ich die JS-Methode starte, überprüfe ich, ob das Skript nicht enthalten ist, und schließe es ein, wenn es nicht vorhanden ist. Sicherlich ist vorhanden, wenn dieser Code ausgeführt wird. Ich erwähnte auch, dass ich das Skript-Tag im HTML-Code gesehen habe. Danke –

0
var head = document getElementsByTagName('head')[0]; 

sollte

var head = document.getElementsByTagName('head')[0]; 

Script nach dieser Änderung zu funktionieren scheint.

+0

Entschuldigung das war ein Tippfehler. Ich habe Prototyp für die Abfrage von DOM verwendet, ich ersetzt $$() Aufruf mit einer JS-Methode. –

1

Verwenden Sie eine Bibliothek wie RequireJS oder LABjs, die die Skripts zur Laufzeit wirklich gut integrieren.

-1

Dies ist tatsächlich funktioniert. Es gab einen Fehler (es passiert nur in IE8) in einem der Skripte, die zur Laufzeit eingefügt werden. Eventuell werden auf den als nächstes geladenen Seiten keine Warnungen ausgeführt. Danke für deine Antworten.

Verwandte Themen