2014-10-21 17 views
31

Mam śledzenie błędów javascript na mojej stronie. Ostatnio zacząłem się następujący błąd z Chrome (wersja 37 i 38) na iPhone (iOS 7 i 8):ReferenceError: Nie można znaleźć zmiennej: __gCrWeb

ReferenceError: Can't find variable: __gCrWeb

nie mogłem znaleźć żadnych użytecznych informacji na temat tego błędu z wyjątkiem kilku referencji. Czy ktoś widział go wcześniej i wie, dlaczego tak się dzieje?

+4

dla mnie ten sam błąd. Więcej informacji: Przeglądarka - iPhone Safari 5.0, agent użytkownika - Mozilla/5.0 (iPhone, CPU iPhone OS 8_0_2 jak Mac OS X) AppleWebKit/600.1.4 (KHTML, jak Gecko) CriOS/38.0.2125.59 Mobile/12A405 Safari/600.1. 4 –

+0

Widzimy 99% na iPadzie Chrome. Nigdy nie otrzymasz śladu stosu. Mamy również problemy z iPadem Safari, które losowo się zawieszają, więc obawiamy się, że to jest winowajca. Mozilla/5.0 (iPad, CPU OS 8_0_2 jak Mac OS X) AppleWebKit/600.1.4 (KHTML, jak Gecko) CriOS/38.0.2125.67 Mobile/12A405 Safari/600.1.4 –

+0

fwiw, CriOS to Chrome na iOS. –

Odpowiedz

13

jest numerem referencyjnym: gcrweb.js, czyli lokalny (na urządzeniu) js, który zostaje wtryśnięty przez wersję Chrome przeglądarki iOS.

Google musi to zrobić w przypadku niektórych rozszerzonych funkcji (głównie wstawiania/pobierania danych logowania i innych informacji o formularzu przechowywanych przez inną zsynchronizowaną przeglądarkę Chrome), które nie są dostarczane przez natywny widok internetowy, na którym jest on zbudowany i którego nie można dodać w przeciwnym razie.

To nie powinno mieć wpływu na jakiekolwiek części kodu i chciałbym go pozbyć poprzez ignorowanie go w błąd zalogowaniu (błąd powinien być zawsze taki sam ciąg znaków), na przykład:

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

Innym rozwiązaniem mogłobybyć, aby upewnić się, że odniesienie zawsze istnieje oświadczając mu się na początku swoich js init,

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

podobnie jak Google does it.

+0

Dzięki! Czy to gdzieś dokumentuje? – Tzach

+1

Niestety nie można znaleźć czegoś konkretnego po wyszukaniu. Uzasadnieniem tego jest http://www.chromium.org/developers/design-documents/layered-components-design. Ani skrypt, ani wtrysk nie wydają się być w źródle chromu (patrz msg na http://www.chromium.org/developers/how-tos/build-instructions-ios), ale nie kopałem zbyt głęboko. – Bruno

+0

Poprawiono podpórkę: co najmniej jej źródło znajduje się pod adresem https://chromium.googlesource.com/chromium/src.git/+/master/ios/web/web_state/js/ – Bruno

Powiązane problemy