2012-04-09 21 views
8

Google Analytics muestra que ~ 12% del total de nuestros usuarios se ven afectados por un error de Javascript de:incapaces de reproducirse TypeError: 'indefinido' no es un objeto

TypeError: 'undefined' is not an object

90% de los navegadores están Safari 7534.48.3, 10% son agentes compatibles con Mozilla. El 75% de los errores provienen de iPhones, el 23% de iPads. 1% de Macintosh, el otro 2% es de iPod, etc. Ninguno de los dispositivos ejecuta Linux o Windows.

He intentado habilitar el modo de depuración en Safari tanto en un iPhone como en un iPad pero no he podido reproducir el error.

Here is a link to a page Google Analytics claims is showing the error. Si alguien puede reproducir el error de forma consistente aquí, estaré súper contento porque bastará con un número de línea para comenzar la depuración.

¿Alguien puede pensar en alguna otra forma en que pueda intentar depurar esto? Gracias a todos

Para los curiosos entre nosotros estoy usando this code to send errors to GA - Advertencia: Posible auto promoción.

Actualización: TypeError: 'indefinido' no es un objeto (la evaluación 'safari.self.tab.canLoad')

arregló para conseguir que de una vez al hacer clic en torno, sobre todo en un iPhone, mientras haga clic en "Cambiar país ..."

Actualización: Resuelto esto asegurándose de que el elemento esté disponible en el dom. Resulta que la llamada a Ajax en el éxito estaba tratando de escribir en un elemento que no estaba disponible.

he guardado un sólido historial de Unable to reproduce TypeError: 'undefined' is not an object here

+0

Entonces, ¿cuál es el archivo y la línea que aparece el error? Tu código también lo envía a GA. – Bergi

+0

undefined: 0 .. :(- Te lleva a la mente una tetera de chocolate ... –

+0

@JohnMcLear: si encuentras la respuesta, creo que es mejor que la publiques como respuesta y la apruebes (está permitida), en lugar de simplemente actualizar su pregunta, ya que parece que todavía está activo (sin respuesta) cuando no lo es. – Max

Respuesta

0

En sus functions.js, tienes esto:

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 no es una palabra clave JavaScript. Es una variable que (la mayoría de las veces) pasa a ser indefinida. No puede usar undefined de esta manera. Considere lo que sucedería si lo reemplazó con pinkelephant, ya que eso es exactamente lo que está sucediendo aquí.

+0

Esto es lo extraño, no veo functions.js ... ¿Qué fuente es functions.js para usted? Es decir, viene de cloudflare , google o compartir esto? –

+5

Usar 'pinkelephant' arrojaría un ReferenceError, usando' undefined' no y simplemente devuelve el valor 'undefined'. Además, estoy bastante seguro de que está viendo el código de la extensión de Chrome AdBlock: http://code.google.com/p/adblockforchrome/source/browse/trunk/functions.js?r=3645#85 :) – DCoder

+0

Haha buen punto :) Bueno, fue el único 'indefinido' que pude encontrar ... Tal vez esa es la respuesta a su problema - ¿extensiones del navegador con errores? –

-3

En primer lugar, me sorprende que esté preocupado acerca de los errores de JavaScript que empujan a GA ... Parece que tiene un montón de códigos de error 404 en una serie de enlaces.

segundo lugar, me encontró otro error de JavaScript que me siento merece esta respuesta:

Tratando de suscripción de alertas da una variable no definida en la respuesta (al parecer fijar a los datos de los parámetros de la función):

msh.header.js:213 ReferenceError: Can't find variable: response 
Cuestiones relacionadas