2014-10-21 17 views
31

Ich habe Javascript Fehler Tracking auf meiner Website. Vor kurzem begann ich folgende Fehlermeldung von Chrome bekommen (Versionen 37 und 38) auf dem iPhone (IOS 7 und 8):ReferenceError: Variable kann nicht gefunden werden: __gCrWeb

ReferenceError: Can't find variable: __gCrWeb

ich keine nützlichen Informationen über diesen Fehler bis auf ein paar Referenzen finden konnte. Hat es schon mal jemand gesehen und weiß warum es passiert?

+4

für mich gleichen Fehler. Weitere Informationen: Browser - iPhone Safari 5.0, Benutzer-Agent - Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 wie Mac OS X) AppleWebKit/600.1.4 (KHTML, wie Gecko) CriOS/38.0.2125.59 Mobile/12A405 Safari/600.1. 4 –

+0

Wir sehen es 99% auf iPad Chrome. Nimm niemals einen Stack-Trace. Wir haben auch Probleme mit dem Absturz von iPad Safari, daher machen wir uns Sorgen, dass dies der Schuldige ist. Mozilla/5.0 (iPad; CPU OS 8_0_2 wie Mac OS X) AppleWebKit/600.1.4 (KHTML, wie Gecko) CriOS/38.0.2125.67 Mobile/12A405 Safari/600.1.4 –

+0

fwiw, CriOS ist Chrome für iOS. –

Antwort

13

__gcrweb ist eine Referenz von gcrweb.js, die eine lokale (auf Gerät) js von der iOS-Version von Chrome injiziert wird.

Google muss dies für einige erweiterte Funktionen tun (hauptsächlich das Einfügen/Abrufen von Anmeldedaten und anderen Formularinformationen, die Sie über einen anderen synchronisierten Chrome-Browser gespeichert haben), die nicht von der nativen Webansicht bereitgestellt werden und nicht hinzugefügt werden können dazu anders.

Dies sollte keine Teile des Codes beeinflussen und ich würde es loswerden Anmeldung durch Ignorieren Sie es in Ihrer Fehlermeldung erhält (die Fehler immer die gleiche Zeichenfolge sein sollen), zum Beispiel:

http://raven-js.readthedocs.org/en/latest/config/#ignoreerrors https://rollbar.com/docs/notifier/rollbar.js/#ignoring-specific-exception-messages

Eine andere Lösung könnte sicherstellen, dass die Referenz ist immer vorhanden, indem sie es sich am Anfang Ihrer js init erklärt

if (!window.__gCrWeb) window['__gCrWeb'] = {}; 

wie Google does it.

+0

Vielen Dank! Ist das irgendwo dokumentiert? – Tzach

+1

Leider nicht in der Lage, etwas nach der Suche nach etwas zu finden. Der Grund dafür ist http://www.chromium.org/developers/design-documents/layered-components-design. Weder das Skript noch seine Injektion scheinen in der Chromquelle zu liegen (siehe http://www.chromium.org/developers/how-tos/build-instructions-ios), aber ich habe nicht zu tief gegraben. – Bruno

+0

Stand korrigiert: Zumindest die Quelle ist bei https://chromium.googlesource.com/chromium/src.git/+/master/ios/web/web_state/js/ – Bruno

Verwandte Themen