Найти ошибку javascript, которую я получаю в телефонной пробке на Android - PullRequest
6 голосов
/ 05 марта 2012

У меня есть приложение phonegap, которое выдает ошибку javascript.У меня была HTML-страница, открытая в браузере на рабочем столе, и она работает там безо всяких ошибок.Когда я загружаю его в эмулятор Android, событие window.onerror вызывается, но я не вижу никакой полезной информации в объекте ошибки, чтобы увидеть, откуда он исходит.У меня есть это, чтобы попытаться получить больше от объекта ошибки:

window.onerror = function(e){
    for(var i in e){
        console.log("window.onerror ::" + i + ' = ' + e[i]);
    }
};

Но я даже не вижу свойства 'сообщения'.Вот вывод:

window.onerror ::undefined
window.onerror ::eventPhase = 3
window.onerror ::currentTarget = [object DOMWindow]
window.onerror ::cancelable = false
window.onerror ::target = [object HTMLScriptElement]
window.onerror ::bubbles = true
window.onerror ::type = error
window.onerror ::cancelBubble = false
window.onerror ::clipboardData = undefined
window.onerror ::srcElement = [object HTMLScriptElement]
window.onerror ::defaultPrevented = false
window.onerror ::timeStamp = 1330975112077
window.onerror ::returnValue = true
window.onerror ::stopPropagation = function stopPropagation() { [native code] }
window.onerror ::preventDefault = function preventDefault() { [native code] }
window.onerror ::initEvent = function initEvent() { [native code] }
window.onerror ::stopImmediatePropagation = function stopImmediatePropagation() { [native code] }
window.onerror ::CAPTURING_PHASE = 1
window.onerror ::AT_TARGET = 2
window.onerror ::BUBBLING_PHASE = 3
window.onerror ::MOUSEDOWN = 1
window.onerror ::MOUSEUP = 2
window.onerror ::MOUSEOVER = 4
window.onerror ::MOUSEOUT = 8
window.onerror ::MOUSEMOVE = 16
window.onerror ::MOUSEDRAG = 32
window.onerror ::CLICK = 64
window.onerror ::DBLCLICK = 128
window.onerror ::KEYDOWN = 256
window.onerror ::KEYUP = 512
window.onerror ::KEYPRESS = 1024
window.onerror ::DRAGDROP = 2048
window.onerror ::FOCUS = 4096
window.onerror ::BLUR = 8192
window.onerror ::SELECT = 16384
window.onerror ::CHANGE = 32768

Что еще я могу сделать, чтобы найти проблему?

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Теперь вы можете установить Chrome для Android и удаленную отладку / анализировать ваше приложение так же, как и в обычном Chrome:
http://code.google.com/chrome/mobile/docs/debugging.html

Чтобы установить Chrome в эмуляторе:

  • Загрузите APK (отсюда, например: http://forum.xda -developers.com / showthread.php? T = 1515900 )
  • Запустите ваш эмулятор под управлением соответствующей версии Android (4.0 для этого конкретного apk)
  • выполнить adb install chrome.apk

установка может занять некоторое время. Затем следуйте инструкциям для удаленной отладки вашего веб-приложения

0 голосов
/ 14 марта 2014

Вы пропускаете, так как обработчику ошибок фактически передается несколько аргументов, поэтому вам тоже нужно их регистрировать.

Например,

window.onerror = function(e,f,g){
   console.log("window.onerror ", e, f, g);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...