Problemy z ING Bank Online w Operze 9

w dziale Strony WWW w Operze
jarmro napisał(a):

Problemu nie było do wersji 8.54 Od Opery 9 sa kłopoty z przeglądaniem historii transakcji, prawdopodobnie na skutek innego interpretowania Javascriptu przez Operę 9. Niestety chyba nie jest to wina banku (IE, Firefox i Opera 8 działają prawidłowo). Był juz post na ten temat z wytłumaczeniem dlaczego tak sie dzieje, ale na razie nigdzie nie znalazłem rozwiazania i kończy sie tym że loguję się do banku pod Firefoxem. Niestety zauważyłem że 9 ma problemy z wieloma innymi stronami, które 8.54 wyświetlała prawidłowo.

Zaufany napisał(a):

Sprawdzałeś maskowanie przeglądarki?

woj-tek napisał(a):

Tu nie chodzi o rozpoznawanie przeglądarki tylko o sposób w jaki nowa wersja opery definiuje i interpretuje typy danych w JS [czy jakoś tak to było wink].

Swoją drogą, jeżeli łatwo można by to było poprawić od strony banku [tzn jakaś niewielka zmiana w kodzie] to może ktoś mądry mógłby napisać o co dokładnie chodzi i podesłać BOK?

danadam napisał(a):

Originally posted by jarmro:


ale na razie nigdzie nie znalazłem rozwiazania i kończy sie tym że loguję się do banku pod Firefoxem.


Jeśli lubisz partyzantkę, to sobie wpisz do notatek takiego stringa:

opcja=historia&accountType=&accountSys=C&fromDate=2006-06-11&toDate=2006-07-11&number=<twój numer konta>

i doklejaj do adresu https://ssl.bsk.com.pl/bskonl/rachunki.do (to ten po wejściu na zakładkę rachunki). Potem już tylko daty zmieniać bigsmile

Originally posted by lwiczek:

Tu nie chodzi o rozpoznawanie przeglądarki tylko o sposób w jaki nowa wersja opery definiuje i interpretuje typy danych w JS [czy jakoś tak to było wink].


Dokładnie chodzi o to, że atrybut "pattern" pola tekstowego w formularzu jest domyślnie ustawiony na pusty string, podczas gdy w pozostałych przeglądarkach (również w Operze 8.54) jest w ogóle nie ustawiony (czyli pattern == null).

Originally posted by lwiczek:

Swoją drogą, jeżeli łatwo można by to było poprawić od strony banku [tzn jakaś niewielka zmiana w kodzie] to może ktoś mądry mógłby napisać o co dokładnie chodzi i podesłać BOK?


No więc tak: w momencie naciśnięcia przycisku "Pobierz dane" wysyłany jest formularz, lecz zanim to nastąpi walidowane są jego pola. Wywoływana jest funkcja validateForm(), która wywołuje isFormValid(form) z tym właśnie formularzem jako parametrem. Funkcja ifFormValid() znajduje się w oddzielnym pliku, więc każdy może ją przeglądnąć. Funkcja ta dla każdego pola formularza wywołuje funkcję isFieldValid() (która również znajduje się w tym pliku). W funkcji tej jest taka linijka:

if(f.pattern!=null && v.replace(f.pattern,'')!='')

// gdzie:
// f - obiekt pola formularza
// v - wartość wpisana w tym polu

Jak widać wszystkie przeglądarki "przeskoczą" tego if'a, bo u nich atrybut pattern jest null, więc pierwszy warunek jest niespełniony. Natomiast Opera 9 spełnia ten warunek, bo pattern jest pustym stringiem czyli różny od null. Spełnia również drugi warunek, bo po zastąpieniu w wartości formularza "niczego" "niczym" dostajemy z powrotem wartość formularza, która jest różna od pustego stringa. Wewnątrz if'a mamy:

alert(f.wrongPatternMsg!=null?f.wrongPatternMsg:'Pole '+c+' jest wypełnione nieprawidłowo. Proszę poprawić.')
return false

I to jest właśnie komunikat, który jest wyświetlany pod Operą 9 przy próbie pobrania historii.

A teraz kto mi powie, czy to wina przeglądarki czy strony? confused

Zaufany napisał(a):

A jest to gdzieś w specyfikacji DOM? Ja nie znalazłem...

wilk napisał(a):

A mnie po kilku telefonach po infoliniach i dzialach pomocy technicznej szlag trafia. Wszedzie zalecaja IE 6. Na infolinii zapytani o namiar na rzecnizka prasowego twierdza, ze nie moga udzielac takiej informacji (!). Dzis bylem w jednej z placowek. Tam bylo dopiero zabawnie, jedna z kasjerek na zmiane przepraszala i sie wkurzala, bo jak mowila sama korzysta z Opery.

Tak czy inaczej powiedzialem sobie, ze jak do konca sierpnia nic sie nie zmieni (lub jesli wczesniej sie wkurze) to zmieniam bank. W sumie przy zakladaniu konta dostepnosc w Operze byla dla mnie jedna z glownych cech jakie mnie interesowaly.

quiris napisał(a):

Originally posted by danadam:

A teraz kto mi powie, czy to wina przeglądarki czy strony?


Wina jest strony, a raczej innych przeglądarek, które niepoprawnie zaimplementowały standard: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-666EE0F9 Opera 9 jako jedyna przeglądarka dostosowała się do standardu, co spowodowało szereg problemów ze stronami, które spodziewają się niestandardowego zachowania przeglądarki. Podobno zostało to już poprawione w Operze, a Opera jako taka będzie wnioskować do W3C o skorygowanie standardu. Hmm... Choć trzeba poczekać chyba na publiczną wersję w fiksem.
Szczegóły na ten temat: http://my.opera.com/hallvors/blog/show.dml/429702

PS. Nie jest to dokładnie ten przypadek.

quiris napisał(a):

Rozwiązanie problemu za pomocą skryptu userjs: http://my.opera.com/polski/forums/topic.dml?id=153365
Inny wątek na ten temat: http://my.opera.com/polski/forums/topic.dml?id=154446

quiris napisał(a):

Originally posted by quiris:

Wina jest strony, a raczej innych przeglądarek, które niepoprawnie zaimplementowały standard: http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-666EE0F9 Opera 9 jako jedyna przeglądarka dostosowała się do standardu, co spowodowało szereg problemów ze stronami, które spodziewają się niestandardowego zachowania przeglądarki. Podobno zostało to już poprawione w Operze, a Opera jako taka będzie wnioskować do W3C o skorygowanie standardu. Hmm... Choć trzeba poczekać chyba na publiczną wersję w fiksem.


No i trafiłem kulą w płot. Akurat w tym przypadku problem jest inny. Problem pojawił się w związku z wbudowaniem w Operę obsługi Web Forms 2, które to posiadają atrbuty 'pattern' oraz 'requied'. Akurat tego się nie przeskoczy, bez modyfikacji kodu po stronie ING. Szczegółowe wyjaśnienie: http://my.opera.com/hallvors/blog/show.dml/429702#comment2048452

quiris napisał(a):

Bardzo proszę osoby posiadające konto w ING o pilny kontakt na PM. Szykuje się poprawka ze strony Opery dla tego banku. Niezbędna jest weryfikacja, czy poprawka działa prawidłowo, a sam nie mam tam konta.

quiris napisał(a):

Kontynuacja dyskusji w wątku: http://my.opera.com/polski/forums/topic.dml?id=153365