jQuery IE9-10: unable to get property ersetzen von undefined oder null-Verweis
Entwickle ich eine Seite mit den folgenden Bibliotheken;
- jQuery (1.7.2) (ältere version, weil der ein Abhängigkeitsproblem, aber versucht haben, bis zu 1.9.1, nicht beheben Ausgabe).
- Rückgrat (1.1.0)
- lodash (2.4.1)
- modernizr (2.7.1)
- gsap (1.17.0)
Die Seite Leinwand und gsap für die animation. Alles funktioniert Super im IE11, Chrome, Safari, Firefox und IE8 (Animationen deaktiviert IE8), aber mit dem IE9 und 10, nur werfen diese Fehlermeldung in der Konsole über und
unable to get property 'ersetzen' von undefined oder null-Verweis
Die Zeile verwiesen wird, ist in jquery.js
, Linie 622 ist, ist die return-Anweisung in diesem code:
//Convert dashed to camelCase; used by the css and data modules
//Microsoft forgot to hump their vendor prefix (#9572)
camelCase: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
},
Ich kann nicht herausfinden, wie um zu bestimmen, welcher Teil von MEINEM code verursacht das jQuery-code, um das Feuer, so bin ich nicht sicher an was kann das Problem auf meinem Ende.
Weiß jemand eine Lösung für dieses? Oder alternativ, wie kann ich sehen, was das Teil von meinem code verursacht das jquery-code, um das Feuer (mit IE dev tools)?
InformationsquelleAutor Prefix | 2015-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellt sich heraus, das Problem war nicht etwas grundsätzlich falsch mit dem IE, sondern ich habe versucht, auf ein Objekt zuzugreifen, die nicht mehr vollständig vorhanden ist. Die anderen Browser, die diese nicht in Frage (vielleicht Ihre JS-engines waren einfach nur schnell genug, um es ein nicht-Thema), aber ich habe jetzt überprüft, um sicherzustellen, dass alle relevanten Inhalte geladen hat, vor der Ausführung der problematischen Funktion und das Problem scheint Weg zu sein. Danke für die Hilfe, alle.
meist geben Sie prüft,
if (typeof myVar !== 'undefined') { ... }
Ich lief in dieser situation, wo ich dabei war
$(something_in_ram).find(something_inside).after(function(){return (cond)?this:that})
und ich landete zu definieren, die "das" oder "dass" vor dem Aufruf nach. Ich denke auch, es war ein Fall von IE-javascript-engine langsamer als Chrome, weil es funktioniert gut in Chrome. Deine Antwort hat mir wirklich geholfen entlang. Danke.InformationsquelleAutor Prefix
Welche Art von Werkzeug verwenden Sie zum Debuggen? Ich habe für Sie eine Lösung für Chrome debug-Konsole
1. Gehen Sie als erstes Finden Sie die jquery-Skript-Datei in der Konsole mit der rechten Maustaste und wählen Sie "Blackbox-Skript", es wird ignoriert, beim Debuggen, nur Ihre Dateien werden als
2. Aktivieren Sie brechen auf Fehler und ein breakpoint wird ausgelöst, auf die Codezeile, wo die Ausnahme aufgetreten ist,
Überprüfen Sie JavaScript: gibt es einen Weg, um Chrome zu brechen auf alle Fehler?
und https://developer.chrome.com/devtools/docs/blackboxing
im IE müssen Sie mit dem Debuggen beginnen, müssen Haltepunkte getroffen.
Überprüfen Sie auch diese url: stackoverflow.com/questions/23904509/... er immer die gleichen Fehler, die Sie sind. könnte damit zusammenhängen.
Können Sie noch aktivieren Sie die Pause auf Fehler-option im IE-devtools (ab IE8). Sie brechen in camelCase-Funktion und Sie können Folgen Sie den stacktrace zu wissen, wo der Anruf erfolgt aus dem code. msdn.microsoft.com/en-us/library/dd565625(v=vs. 85).aspx
InformationsquelleAutor Pax
Vielleicht bin ich hier falsch aber ist es möglich, dass der IE8-9 "string" ist ein reserviertes Wort? Vielleicht auch nicht. Aber das einzige mal .ersetzen würde zeigen, dass die Nachricht ist, wenn Sie nicht füttern Sie eine Schnur.
InformationsquelleAutor SoluableNonagon