4
function icPageInit() 
{ 
    $("icImgDiv" + icAlternate()).setOpacity(0); 
    return true; 
} 
window.onload = icPageInit; 

Dieses Stück Javascript-Code funktioniert in Firefox und Chrome, aber nicht mit dem Fehler 'Object Expected' in Internet Explorer 8 IE8 sagt der Fehler auftritt, in Zeile 3 des obigen Codes.'Objekt Erwartete' Fehler Javascript in IE8, wenn prototype.js

Weiß jemand, warum das passiert und/oder wie es funktioniert?

+0

Welche Version von Prototype? Ich glaube, dass die neueste Version IE8 Kompatibilitätsfixes hat. – karim79

+0

Das Neueste, 1.6.0.3 –

+0

Sie benötigen den 1.6.1 Release Candidate für IE8-Unterstützung - es wurde in RC2 hinzugefügt, aktuell ist RC3. – robertc

Antwort

13

Ich habe es herausgefunden.

Stellt Internet Explorer-Drosseln heraus, wenn Sie etwas anderes als "javascript" im language Attribut des script Tags verwenden.

Ich verwendete Versionsnummern, die an javascript im language-Attribut angehängt wurden, was IE dazu veranlasste, prototype.js nicht zu laden.

2

Sind Sie sicher, dass dies: $ ("icImgDiv" + icAlternate()) gibt einen Verweis auf ein Element zurück? Wenn ja, haben Sie versucht, mit Microsoft Script Debugger/Visual Studio zu debuggen, wann und wo die Ausnahme ausgelöst wird?

-1

Dies ist nicht das Problem. IE8 hat diesen Fehler, denke ich ... Weil es mit IE7 und anderen Browser gut funktioniert.

Stellt Internet Explorer-Drosseln heraus, wenn Sie im Sprachattribut des Skript-Tags etwas anderes als "javascript" verwenden.

Ich verwendete Versionsnummer, die an Javascript im Sprachenattribut angehängt wurde, was IE veranlasste, prototype.js nicht zu laden.

2

Überprüfen Sie auch, dass der Typ des Skript-Tags "text/javascript" ist. Ich hatte diesen Fehler in IE8 und reparierte ihn, indem ich den Typ = Teil des Skript-Tags von "application/javascript" auf "text/javascript" änderte.

+0

Danke Das funktioniert für mich :) – KiranSolkar