Ich versuche, meine jQuery-Funktionen auf IE8 zum Laufen zu bringen. Ich lade die Bibliothek von den Servern von Google ( http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js ).
Das $(function(){})
wird nie genannt. Stattdessen erhalte ich eine Fehlermeldung Object expected
. Ich öffnete den Entwickler und lief typeof $
in der Konsole, und es kam als undefined
.
Ich habe versucht, auf andere Websites zu gehen, von denen ich weiß, dass sie jQuery (jquery.com) verwenden, und diese funktionieren alle. Gibt es etwas, das mir hier möglicherweise fehlt?
javascript
jquery
internet-explorer-8
Shashank Agrawal
quelle
quelle
Antworten:
Schreiben Sie "var" vor Variablen, wenn Sie sie definieren. IE8 stirbt, wenn es kein "var" gibt.
quelle
var
, um eine Variable mit lokalem Gültigkeitsbereich zu definieren. Wenn Sie eine Variable ohne definierenvar
, wird tatsächlich eine Eigenschaft mit globalem Gültigkeitsbereich erstellt, dh als Eigenschaft des Fensterobjekts. Siehe diese Frage für weitere Informationen: stackoverflow.com/questions/1470488/…Korrektur:
Überprüfen Sie, ob Ihr Skript-Include-Tag verwendet wird
type="application/javascript" src="/path/to/jquery"
ändern
type="text/javascript" src="/path/to/jquery"
quelle
Ich hatte ein ähnliches Problem. Die Dinge funktionierten in IE6, Firefox und IE8, die im IE7-Kompatibilitätsmodus ausgeführt wurden. aber nicht im "normalen" IE8. Meine Lösung bestand darin, diesen Code in den Header einzufügen
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
Ich bin mir nicht sicher, warum jquery in IE8 nicht funktioniert.
quelle
Die Lösung besteht darin, auf die neueste Version von jQuery zu aktualisieren. Ich hatte genau das gleiche Problem und habe auf 1.4.2 aktualisiert und alles funktioniert wieder gut in IE8.
Scheint völlig abwärtskompatibel zu sein mit all den jQuery 1.3.2-Sachen, die ich auch gemacht habe, also keine Beschwerden hier!
quelle
Ich hatte dieses Problem und versuchte die hier genannten Lösungen ohne Erfolg.
Schließlich stellte ich fest, dass ich eine Verknüpfung zur Google CDN-Version des Skripts herstellte,
http URL
während die Seite, in die das Skript eingebettet war, eine warhttps page
.Dies führte dazu, dass der IE jquery nicht lud (er fordert den Benutzer auf, nur sichere Inhalte zu laden). Das Ändern der Google CDN-URL zur Verwendung des https-Schemas hat das Problem für mich behoben.
quelle
Einige Leute, die über diesen Beitrag stolpern, bekommen möglicherweise dieses Problem mit jquery und IE8, weil sie> = jQuery v2 verwenden. Verwenden Sie diesen Code:
<!--[if lt IE 9]> <script src="jquery-1.9.0.js"></script> <![endif]--> <!--[if gte IE 9]><!--> <script src="jquery-2.0.0.js"></script> <!--<![endif]-->
quelle
Wenn Sie HTTPS auf Ihrer Site verwenden, müssen Sie stattdessen die jQuery-Bibliothek vom Googles-https-Server laden. Versuchen Sie Folgendes: https://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js (oder die neueste Version von https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/). jquery.min.js )
quelle
jQuery wird nicht geladen, dies ist wahrscheinlich nicht spezifisch für IE8. Überprüfen Sie den Pfad in Ihrem jQuery-Include. Erklärung. Oder noch besser, verwenden Sie Folgendes für das CDN:
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"> </script>
quelle
Ich habe eine Vorlage repariert, die von jemand anderem erstellt wurde, der vergessen hat, den Doctype einzuschließen.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Wenn Sie nicht deklarieren, dass der
doctype
IE8 im Quirks-Modus seltsame Dinge tut.quelle
Der Fehler
Object expected
wird ausgelöst, weil Jquery nicht geladen ist. Dies geschieht aufgrund der Browsersicherheit (normalerweise IE), mit der Sie keinen externen Javascript-Quellcode ausführen können. Sie können dieses Problem beheben, indem Sie:ODER
Ich bevorzuge die erste Lösung.
quelle
Das Onload-Ereignis funktioniert nicht immer in IE7 / 8 in
<head> ... </head>
Sie können dies erzwingen, indem Sie am Ende Ihrer Seite vor dem Tag ein Onload-Skript hinzufügen (siehe unten).
<script> window.onload(); </script> </body>
quelle
Vielleicht fügst du zwei Skripte ein, es sollte funktionieren.
<script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js">/script>
quelle
Dies hat mein Problem in IE8 behoben:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
Unter localhost musste ich https: // in http: // ändern
Wenn ich versuche, zum sicheren Link zu navigieren, kann der Internet Explorer die webseitenfreundliche Warnung nicht anzeigen .
Versuchen Sie immer, Ihre Textskripte zuerst in einen Browser zu laden, wenn es Probleme gibt!
quelle
Ich hatte die gleichen Probleme.
Ich habe es gelöst und überprüft, ob IE8 nicht richtig konfiguriert wurde, um die SRC-URL zu erreichen.
Ich habe das geändert, es funktioniert richtig.
quelle
Vielleicht haben Sie inPrivate Filtering aktiviert ?
quelle
Ich hatte das gleiche Problem. Die Lösung bestand darin, den Link zur JQuery-Datei als vertrauenswürdige Site im IE hinzuzufügen.
quelle
Ich denke, dass Sie das gleiche Problem haben wie ich:
Message: Permission denied Line: 13 Char: 27021 Code: 0 URI: http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.3.2.min.js
Wegen domänenübergreifender Referenz. Versuchen Sie, jquery.js in derselben Domain zu hosten.
quelle
Kurz gesagt, es liegt an der IE8-Parsing-Engine.
Ratet mal, warum Microsoft Probleme hat, auch mit den neuen HTML5-Tags (wie "Abschnitt") zu arbeiten? Dies liegt daran, dass MS beschlossen hat, nicht wie der Rest der Welt reguläres XML-Parsing zu verwenden. Ja, das ist richtig - sie haben eine Menge Propaganda über XML gemacht, aber am Ende greifen sie auf eine "dumme" Parsing-Engine zurück, die nach "bekannten Tags" sucht und Dinge durcheinander bringt, wenn etwas Neues auftaucht.
Gleiches gilt für IE8 und das jquery-Problem mit "load", "get" und "post". Wieder entschied sich Microsoft, mit Version 8 "ihren eigenen Weg zu gehen". In der Hoffnung, dass (d) dies in IE9 gelöst wird, besteht die einzige aktuelle Option darin, auf das Parsen mit IE7 zurückzugreifen
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
.Na ja ... was für eine Überraschung, dass Microsoft uns dazu gebracht hat, wieder etwas in Foren zu posten. ;)
quelle
In meinem Fall bestand die Lösung darin, Sonderzeichen aus der URL zu entfernen, auf die Sie zugreifen möchten. Ich hatte eine Tilde (~) und ein Prozentzeichen darin, und der Aufruf von $ .get () schlug stillschweigend fehl.
quelle
OK! Ich weiß, dass jQuery geladen wird. Ich weiß, dass
jQuery.textshadow.js
geladen wird. Ich kann beide Skripte in den Entwicklertools finden.Der seltsame Teil: Dieser Code funktioniert im Inhaltsbereich, aber nicht im Banner. Auch mit einem engagierten
fixIE.css
. UND es funktioniert, wenn ich das CSS inline setze. (Das bringt FireFox natürlich durcheinander.)Ich habe sogar eine bedingte IE-Spanne um das Textfeld im Banner eingefügt, ohne Glück.
Ich fand keinen Unterschied und hatte die gleichen Fehler in beiden
jquery-1.4.2.min.js
undjquery-1.2.6.min.js
.jquery.textshadow.js
wurde von der jQuery-Site heruntergeladen, als versucht wurde, eine Lösung für dieses Problem zu finden.Dies wird nicht auf der Website veröffentlicht
quelle