Google Chrome: nieudany błąd typu: nie można odczytać właściwości „getCurrent” z undefined
AUTOR UWAGA: Ten artykuł jest przechowywany wyłącznie w celach historycznych i edukacyjnych. Morał tej historii brzmi: jeśli w dzienniku konsoli pojawią się dziwne błędy javascript podczas pracy nad projektem, spróbuj najpierw wyłączyć wszystkie rozszerzenia Google Chrome i sprawdzić, czy nie występują już błędy. Kiedy widzisz zagadkowy błąd, którego nie możesz zidentyfikować na swojej stronie / projekcie / cms / plugin / theme / app / cokolwiek, prawdopodobnie nie jest to spowodowane!
Ostatnio opisałem typowy błąd w przeglądarce Google Chrome: Google Chrome: wyjaśniono brak pliku jquery.qtip.min.map , a dziś omówię inny błąd jQuery, który został wywołany przez inne popularne rozszerzenie SEO.
Majestatyczne logo SEO
GOOGLE CHROME: MAJESTYCZNE ROZSZERZENIE SEO POD PRZEGLĄDEM
Majestic Extension dla Google Chrome to naprawdę musi być dodatek dla każdego, kto nawet poważnie myśli o biznesie SEO, jednak jako programista może być zaskoczony niektórymi podejrzanymi błędami javascript / jQuery w ulubionej konsoli dev:
Uncaught TypeError: Nie można odczytać właściwości 'getCurrent' z niezdefiniowanego popup.js: 17
(funkcja anonimowa)
jquery-1.8.2.js: 974
jQuery.Callbacks.fire jquery-1.8.2.js: 1082
jQuery.Callbacks.self.fire Withjquery-1.8.2.js: 406
jQuery.extend.ready
Na początku możesz spróbować debugować twoją aplikację lub skrypt, który rozwijasz, ale miejmy nadzieję, że wkrótce dostrzeżesz, że jest to spowodowane błędem w pliku biblioteki jQuery popup.js używanym przez rozszerzenie Majestic SEO. Umożliwia funkcjonalność wyskakujących okienek i automatyczne pobieranie danych aktualnie oglądanej strony internetowej. Jeśli wyłączysz wtyczkę na chwilę, komunikat o błędzie zniknie, co wyraźnie ujawni jego prawdziwą przyczynę.
Google Chrome Nieprzechwycony TypeError Nie można odczytać właściwości „getCurrent” z undefined (kliknij, aby powiększyć)
ROZWIĄZANIE FIX
Rozwiązanie tego problemu nie jest takie proste, jak miało to miejsce w poprzednim przypadku, ale przynajmniej zidentyfikowaliśmy źródło problemu. Plik kłopotliwy popup.js jest podpisany przez Copyright (c) 2012 Autorzy Chromium, którzy są odpowiedzialni za główną część biblioteki, jednak jest on dalej modyfikowany przez zespół Majestic SEO.
Dopóki wtyczka nie otrzyma odpowiedniej aktualizacji, która naprawi problem, możesz obejść to, tymczasowo wyłączając wtyczkę podczas pracy nad ważnymi projektami.
Inną, mniej irytującą poprawką jest utrzymanie włączonej problematycznej wtyczki, ale ukrycie tego błędu przed przyszłymi powiadomieniami bezpośrednio w konsoli programistycznej:
Google Chrome Uncaught TypeError Solution Fix (kliknij, aby powiększyć)
Zapobiegnie to raportowaniu przyszłych błędów z popup.js w mniej natarczywy sposób: zobaczysz aktywne powiadomienie o filtrze w jasnoszarym kolorze.
Prezentowane rozwiązanie może być całkowicie w porządku, dopóki nie zdecydujesz się użyć tej biblioteki w swoim własnym projekcie, a później będziesz musiał ją debugować w dowolnym momencie. Następnie musisz kliknąć powiadomienie o filtrze, aby je usunąć.