TypeError kann nicht reproduziert werden: „undefined“ ist kein Objekt

Lesezeit: 4 Minuten

Benutzer-Avatar
John McLear

Google Analytics zeigt, dass ca. 12 % unserer gesamten Nutzer von einem Javascript-Fehler betroffen sind:

TypeError: 'undefined' is not an object

90 % der Browser sind Safari 7534.48.3, 10 % sind Mozilla-kompatible Agenten. 75 % der Fehler stammen von iPhones, 23 % von iPads. 1 % vom Macintosh, die anderen 2 % vom iPod usw. Keines der Geräte läuft unter Linux oder Windows.

Ich habe versucht, den Debug-Modus in Safari sowohl auf einem iPhone als auch auf einem iPad zu aktivieren, konnte den Fehler jedoch nicht reproduzieren.

Hier ist ein Link zu einer Seite, auf der Google Analytics behauptet, dass der Fehler angezeigt wird. Wenn jemand den Fehler hier konsistent reproduzieren kann, wäre ich super glücklich, denn nur eine Zeilennummer würde ausreichen, um mich zum Debuggen zu bringen.

Kann mir jemand andere Möglichkeiten vorstellen, wie ich versuchen kann, dies zu debuggen? Danke an alle

Für die Neugierigen unter uns verwende ich diesen Code, um Fehler an GA zu sendenWarnung: Mögliche Eigenwerbung.

Aktualisieren: TypeError: „undefined“ ist kein Objekt (Auswertung von „safari.self.tab.canLoad“)

Es ist mir gelungen, das einmal herauszubekommen, als ich herumgeklickt habe, meistens auf einem iPhone, während ich auf “Land ändern …” geklickt habe.

Aktualisieren: Dies wurde gelöst, indem sichergestellt wurde, dass das Element im Dom verfügbar war. Es stellte sich heraus, dass der Ajax-Aufruf bei Erfolg versucht hat, in ein Element zu schreiben, das nicht verfügbar war.

Ich habe eine solide Aufzeichnung darüber geführt TypeError kann nicht reproduziert werden: „undefined“ ist hier kein Objekt

  • Also, was ist die Datei und Zeile, in der der Fehler erscheint? Ihr Code sendet das auch an GA.

    – Bergi

    9. April 2012 um 18:28 Uhr

  • undefined:0 .. 🙁 — Schokoladen-Teekanne kommt mir in den Sinn…

    – John McLear

    9. April 2012 um 18:32 Uhr

  • @JohnMcLear: Wenn Sie die Antwort gefunden haben, ist es meiner Meinung nach besser, Sie posten sie als Antwort und genehmigen sie (es ist zulässig), anstatt einfach Ihre Frage zu aktualisieren, da es so aussieht, als wäre sie noch aktiv (unbeantwortet), wenn dies nicht der Fall ist.

    – max

    11. Februar 2018 um 17:13 Uhr

  • @JohnMcLear: Als du diesen Kommentar verfasst hast, wurdest du zuletzt vor 3 Stunden gesehen. Könnten Sie also einfach dem obigen Rat folgen, der bereits vor fast 3 Jahren datiert ist, und sich selbst beantworten, um diese Frage als beantwortet zu markieren?

    – Louys Patrice Bessette

    18. Januar 2021 um 22:39 Uhr

  • Wenn Sie eine undefinierte Funktion bestimmen möchten, wird dieser Typ nicht nur auf Typoskript von Schnittstellen gefunden, aber wenn Sie fragen und klonen, ändern Sie diese Funktion. TypeError: „undefined“ ist deklarativ. no wurde in ein Objekt umgewandelt.

    Benutzer8331407

    19. Dezember 2021 um 18:21 Uhr

Nicht definiert

Der undefinierte Typ hat nur einen Wert: undefiniert. Es ist der Standardwert, den alle Variablen nach einer Deklaration haben, wenn ihnen kein Wert zugewiesen wird. Sie können jeder Variablen auch den Wert undefined zuweisen, aber im Allgemeinen sollte dies vermieden werden, denn wenn wir eine Variable als keinen sinnvollen Wert markieren müssen, sollten wir null verwenden.

Let declaredVar;
console.log(typeof declaredVar); // -> undefined

declaredVar = 5;
console.log(typeof declaredVar); // -> number

declaredVar = undefined;
console.log(typeof declaredVar); // -> undefined

The undefined value can also be returned by the typeof operator when a non-existent variable is used as an argument.

Console.log(typeof notDeclaredVar); // -> undefined
console.log(notDeclaredVar); // -> Uncaught ReferenceError: notDeclared is not defined

In Ihrer functions.js haben Sie Folgendes:

storage_get = function(key) {
  var store = (window.SAFARI ? safari.extension.settings : localStorage);
  var json = store.getItem(key);
  if (json == null)
    return undefined;
  try {
    return JSON.parse(json);
  } catch (e) {
    log("Couldn't parse json for " + key);
    return undefined;
  }
}

undefined ist KEIN JavaScript-Schlüsselwort. Es ist eine Variable, die (meistens) undefiniert ist. Sie können nicht verwenden undefined so was. Überlegen Sie, was passieren würde, wenn Sie es durch ersetzen würden pinkelephantdenn genau das passiert hier.

  • Das ist das Seltsame, ich sehe keine functions.js … Welche Quelle ist functions.js für Sie? IE kommt es von cloudflare, google oder sharethis?

    – John McLear

    9. April 2012 um 18:43 Uhr

  • Verwenden pinkelephant würde einen ReferenceError auslösen, using undefined nicht und gibt einfach die zurück undefined Wert. Außerdem bin ich mir ziemlich sicher, dass Sie sich den Code der Chrome AdBlock-Erweiterung ansehen: code.google.com/p/adblockforchrome/source/browse/trunk/… 🙂

    – DCoder

    9. April 2012 um 18:52 Uhr

  • Haha guter Punkt 🙂 Nun, es war das einzige undefined Ich könnte finden … Vielleicht ist das aber die Antwort auf sein Problem – Browsererweiterungen mit Fehlern?

    – Jon Grant

    10. April 2012 um 10:38 Uhr

  • Sie ersetzen nicht einfach undefined durch pinkelephant, Sie deklarieren eine undefinierte Variable namens pinkelephant, wie etwa „var pinkelephant;“ und dann statt “return undefined;” DANN kannst du “return pinkelephant” machen;

    – Jimbo Jonny

    14. September 2012 um 15:14 Uhr

  • Dies scheint nicht richtig zu sein. Entsprechend w3schools.com/jsref/jsref_undefined.asp Es gibt so etwas wie “undefiniert”, das von allen gängigen Browsern ordnungsgemäß unterstützt wird.

    – ekscrypto

    27. August 2015 um 23:39 Uhr

1130250cookie-checkTypeError kann nicht reproduziert werden: „undefined“ ist kein Objekt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy