2012-04-17 28 views
9

me sale el siguiente error y el iPad, pero no en los navegadores de escritorio:iPad Error de JavaScript no es útil

JavaScript: Error 
undefined 
TypeError: 'undefined' is not a function 

Esta es una aplicación más grande js, y este mensaje de error es totalmente inútil. ¿Hay alguna manera de que pueda obtener el número de línea del error o más información?

Actualización: Esto acaba de funky.

line : 0  
page : undefined 
desc : TypeError: 'undefined' is not a function 
chr : undefined 

El usuario agente spoofing en FF y safari. No hay error.

+2

Tuve el mismo problema, y ​​aunque la sugerencia window.onerror fue un comienzo, obtuve los mismos resultados inútiles. Terminé teniendo que ensuciar mis scripts con console.logs para estrecharlos. Con iOS parece que hemos retrocedido a ie6 días con la depuración de errores ... Mi problema específico era que asumía function() {}. bind() fue compatible en mi aplicación. No lo era, pero mis navegadores dev (Safari/Chrome) lo soportan de forma nativa, mientras que iOS Safari aparentemente no lo hace. – heff

+0

Créalo o no, '.bind' era mi problema también. – Fresheyeball

Respuesta

13

Usted podría intentar registrar un controlador de errores personalizado para window.onerror

window.onerror = function (desc,page,line,chr) 
{ alert('Line:'+line); } 

desc = Mensaje de error
page = Archivo/Página donde ocurrió el error
line = Bueno ...
chr = Posición de carácter del error en la línea

+0

oo eso fue genial. De cualquier manera, ¿puedo obtener el nombre del archivo también? – Fresheyeball

+0

intente la variable 'page' :) - he editado la respuesta para incluir la información de contenido de las cuatro variables :) – bardiir

+0

para la página Me sale 'indefinido', extraño – Fresheyeball

2

Si vincula un controlador de errores a window.onerror, i t debería darle el número de línea, p.

window.onerror = function(msg,url,line) { 
    alert('The error is on line '+line); 
} 

Esta pregunta: Debug JavaScript errors on iPad parece indicar que puede habilitar la depuración también.

Si el script se carga dinámicamente, sin embargo, puede ser difícil obtener dicha información en cualquier entorno.