Rozwiązanie dla użytkowników Opery 9 i serwisu ING OnLine

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

Wszystkim sfrustrowanym niemożnością korzystania z serwisu ING OnLine i nie chcącym czekać dłużej na to, aż zespół z ING przystosuje swój serwis do współpracy z Operą 9, podaję rozwiązanie na talerzu wink Nie będę się rozpisywał na temat dlaczego nie chce działać, bo o tym już na forum było, zamiast tego zaproponuję rozwiązanie. Nie jest to może rozwiązanie bardzo eleganckie, ale za to skuteczne, a bazuje na User Script'ach, które twórcy Opery dali nam do rąk, i chwała im za to. Oto remedium:
1) Tworzymy sobie gdzieś na dysku katalog na User Script'y
2) Wrzucamy do tego katalogu załączony przeze mnie User Script
<i>Skrypt ten zastępuje feralną funkcję isFieldValid, stworzoną przez zespół z ING, jej wierną kopią pozbawioną elementów powodujących problemy w Operze 9. Ilekroć jakakolwiek z podstron serwisu ING OnLine będzie chciała zwalidować pola formularza użyje naszej poprawionej funkcji, a tym samym przestanie wyświetlać nielogiczne błędy.</i>
3) Zamykamy Operę
4) W sekcji [User Prefs] pliku opera6.ini dodajemy następujące linie:
User JavaScript File=C:\Program Files\Opera\scripts
User JavaScript=1
Always Load User JavaScript=1
User JavaScript on HTTPS=1
<i>Pierwsza linia zawiera pełną ścieżkę do katalogu założonego w kroku 1. Niestety wyżej wymienione linie musimy dodać do pliku konfiguracyjnego ręcznie, ponieważ nie da się w inny sposób wymusić korzystania z User Script'ów na stronach HTTPS.</i>
5) Uruchamiamy Operę
6) Z perwersyjną przyjemnością oglądamy historię rachunku i robimy przelewy bigsmile

Mam nadzieję, że komuś się to przyda!

bsk.js

djozd napisał(a):

Witam. Czy programisci Opery są wstanie znaleść kompromis pomiedzy swoim kodem a kompatybilnością z takimi stronami jak ta z ING? Moze jakis apel do programistów?

nowotny napisał(a):

Originally posted by djozd:

Czy programisci Opery są wstanie znaleść kompromis pomiedzy swoim kodem a kompatybilnością z takimi stronami jak ta z ING?


OIMW to strona ING jest błędnie zrobiona a nie Opera... tak że raczej należałoby wystosować apel do webmasterów aby pisali kod przyjazny wszystkim przeglądarkom i zgodny ze standardami... no ale to Utopia, wiem... :/

djozd napisał(a):

Tak, masz racje. Ale jesli idioci programiści z ING w swoim kretyństwie nie dopuszczają takiej opcji to może by poprostu stworzyc rozwiązanie uodparniajce przeglądarke na podobne przypadki. No nie wiem, co trzeba zrobic. Poki co musimy (przynajmniej ja) uzywać wersji 8. Niestety.

nowotny napisał(a):

Originally posted by djozd:

może by poprostu stworzyc rozwiązanie uodparniajce przeglądarke na podobne przypadki.


To może by jeszcze stworzyć miliony innych rozwiązań uodparniające przeglądarke na miliony innych podobnych przypadków...? :/

Zajec napisał(a):

Originally posted by djozd:

Tak, masz racje. Ale jesli idioci programiści z ING w swoim kretyństwie nie dopuszczają takiej opcji to może by poprostu stworzyc rozwiązanie uodparniajce przeglądarke na podobne przypadki. No nie wiem, co trzeba zrobic. Poki co musimy (przynajmniej ja) uzywać wersji 8. Niestety.

Błędów w JS jakie koleruje IE jest przeogromna ilość - nie sposób każdego z nich zaimplementować.

Co więcej miałoby to również złą stronę - Opera pozwalałaby webmasterom na tworzenie bzdurnego kodu. Po pewnym czasie byłoby tak dużo nieudokumentowanych konstrukcji, że mielibyśmy ogromny bałagan.

djozd napisał(a):

Macie racje. Trzeba trzymać się standardów i one są drogą do stabilności, kompatybilności i porządku. Ale jakos nie moge przeboleć tej kwestii.
A może ktoś mi wytłumaczyć co jest w Operach 8 że wszytsko działa poprawnie? Czy też ma błędy jak IE i paradoksalnie chodzi dobrze?

Zajec napisał(a):

Spróbuj porównać kod, jaki dostaje Twoja Opera 8 i jaki dostaje Opera 9.

Jeśli są takie same, to zaczy, że serwer nie wykrywa po cichu wersji Opery.

Dalej trzeba zobaczyć, czy któs ze skryptów JS nie szuka przypadkiem "Opera 8" w UserAgencie.

Jeśli powyższy test również jest negatywny, to znaczy że faktycznie Opera 9 udodporniła się na jakiś głupi skrypt.

woj-tek napisał(a):

Opis z czego problem wynika znajduje sie TU

woj-tek napisał(a):

Ekhm.. może i głupie pytanie, ale teraz mnie naszło - czy skrypt z pierwszego posta jest bezpieczny?

quiris napisał(a):

Originally posted by lwiczek:

Ekhm.. może i głupie pytanie, ale teraz mnie naszło - czy skrypt z pierwszego posta jest bezpieczny?


Jest bezpieczny.

woj-tek napisał(a):

dzieki smile

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):

Małe podsumowanie tego co działa i tego co nie działa. Jeden z użytkowników twierdzi, że historia w ING została już naprawiona i działa prawidłowo w Operze 9.01. Czy są osoby gotowe to potwierdzić?

Ten sam użytkownik twierdzi, że nie chce mu się załadować komponent do robienia przelewów. Czy są osoby potwiedzające ten stan rzeczy? Jeśli tak, to proszę wklejenie logów z konsoli błędów oraz z konsoli Javy.

danadam napisał(a):

Originally posted by quiris:

Małe podsumowanie tego co działa i tego co nie działa. Jeden z użytkowników twierdzi, że historia w ING została już naprawiona i działa prawidłowo w Operze 9.01. Czy są osoby gotowe to potwierdzić?

Ten sam użytkownik twierdzi, że nie chce mu się załadować komponent do robienia przelewów. Czy są osoby potwiedzające ten stan rzeczy? Jeśli tak, to proszę wklejenie logów z konsoli błędów oraz z konsoli Javy.



Debian Testing

Version 9.01
Build 400
Platform Linux
System i686, 2.6.15
Qt library 3.3.6

java version "1.5.0_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05)
Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode)

Historia działa (zmienili kod party ). Przelewy działają (aż się zdziwiłem, bo kiedyś też mi nie działały). Na konsoli javy nic się nie pojawiło. Na konsoli błedów wywaliło parę rzeczy dotyczących CSSa. Przesyłam w załączniku.

ing.errors.txt

woj-tek napisał(a):

Originally posted by danadam:

Przelewy działają (aż się zdziwiłem, bo kiedyś też mi nie działały).



Jak objawiało się ich niedziałanie? Komunikatem o niemożności załadowania komponentu? Czy ktoś posiadajacy:

Version
9.01
Build
8552
Platform
Win32
System
Windows XP
Java
Sun Java Runtime Environment version 1.6



mógłby napisać czy u niego wspomniany komponent się ładuje?

danadam napisał(a):

Originally posted by lwiczek:

Jak objawiało się ich niedziałanie? Komunikatem o niemożności załadowania komponentu?


Inaczej. Po zatwierdzeniu przelewu otwiera się okno z podsumowaniem. Jak się w nim naciśnie "OK", to otwiera się okno z wyborem pliku z kluczem prywatnym. U mnie to okno wyboru sie nie pojawiało.

woj-tek napisał(a):

Mhm. U mnie występuje problem z ładowaniem się komponentu...

quiris napisał(a):

Originally posted by lwiczek:

Mhm. U mnie występuje problem z ładowaniem się komponentu...


Czyli na razie 1:1 z ładowaniem komponentu. Lwiczek, jaki masz system? Czy ktoś posiadający konto w ING może jeszcze wypowiedzieć się w sprawie komponentu?

Originally posted by danadam:

Historia działa (zmienili kod ).

Uff... To dobrze. Czyli w tym obszarze temat jest zamknięty. Poinformuję zatem kogo trzeba w OS ASA, że już nic nie trzeba paczować smile

woj-tek napisał(a):

Originally posted by quiris:

Czyli na razie 1:1 z ładowaniem komponentu. Lwiczek, jaki masz system? Czy ktoś posiadający konto w ING może jeszcze wypowiedzieć się w sprawie komponentu?



Win XP en SP2.

EDIT: Zrobiłem mały 'risercz' i na czystej Operze [profil mojej siostry, relatywnie małe zmiany w profilu opery w stosunku do domyślnych ustawień] komponen ładuje się bez problemu... Pytanie teraz pozostaje co spsociłem z moją Operą że nie działa wink Sprawdziłem czy w Blocked Content nie mam zablokowanego czegoś z bsk/ing w adresie - nie ma. W UserCSS też nic. Site preferences też nie mam ustawionego dla strony banku... Gdzieś jeszcze można było coś napsocić?:>

EDIT2: Coś napsułem w moim user.css - po jego wyłączeniu komponent ładuje się poprawnie - plik ten zasugerowała mi konsola błędów opery sypiąca błędami CSS wink Teraz pozostaje tylko pytanie co w nim jest nie tak... o dziwo - kiedy wyłączyłem tenże plik w preferencjach witryny a miałem ustawiony user mode [z włączonym tym plikiem] to komponent dalej nie chciał się ładować... O_o

quiris napisał(a):

Originally posted by lwiczek:

EDIT2: Coś napsułem w moim user.css - po jego wyłączeniu komponent ładuje się poprawnie - plik ten zasugerowała mi konsola błędów opery sypiąca błędami CSS Teraz pozostaje tylko pytanie co w nim jest nie tak... o dziwo - kiedy wyłączyłem tenże plik w preferencjach witryny a miałem ustawiony user mode [z włączonym tym plikiem] to komponent dalej nie chciał się ładować... O_o


Dawaj tu treść tego user.css to obadamy smile Ale cieszę się, że to nie wina banku i wszystko działa smile

woj-tek napisał(a):

css już naprawiłem - w jednej linijce nie miałem przecinka przed "{ display: none !important }" wink

Ale komponent się dalej nie ładuje... Tym razem w konsoli Opery nic nie wyskakuje za to konsola Javy sypie błędami:

-- Opera Java Console --

Java vendor: Sun Microsystems Inc.
Java version: 1.6.0-beta2

type 'h' for help

--
java.lang.ClassNotFoundException: pl.drq.ingonline.applet.ECOnline
	at com.opera.AppletClassLoader.findClass(AppletClassLoader.java:369)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at com.opera.AppletClassLoader.loadClass(AppletClassLoader.java:433)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at com.opera.AppletPanel.runLoaderThread(AppletPanel.java:365)
	at com.opera.AppletPanel.run(AppletPanel.java:339)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: HTTP Connection failed.
	at com.opera.AppletClassLoader.readClassFile(AppletClassLoader.java:378)
	at com.opera.AppletClassLoader.access$100(AppletClassLoader.java:34)
	at com.opera.AppletClassLoader$4.run(AppletClassLoader.java:360)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.opera.AppletClassLoader.findClass(AppletClassLoader.java:358)
	... 6 more


Wydaje mi się że problem może stanowić uruchamianie tej strony na raz w 3 instancjach wink
Nie chce mi się już dzisiaj resetować komputera żeby sprawdzić czy będzie ok, bo wydaje mi się że będzie...

PS. Dzieki za reakcje smile

danadam napisał(a):

Nowa wersja, nowe problemy :-)

lwiczek zwrócił uwagę, że na ap.nowe-programy zwrócili uwagę na brak współpracy nowej Opery z ING BankOnLine.

Problem znajduje się w javascripcie w funkcji isValidDate():

if (  d.getDate() != Number(a[2])
      || d.getMonth() != Number(a[1])-1
      || (  (d.getYear() <= 999 || navigator.appName=='Netscape')
                ? d.getYear() + 1900
                : d.getYear()
             ) != Number(a[0])
   )
{
   return false
}


d.getYear() zwraca wartość 2007 i w Operze 9.23 i w 9.5, więc o tym czy Number(a[0]) porównujemy z d.getYear()+1900 czy z d.getYear() decyduje wartość navigator.appName. No właśnie, w Operze 9.23 appName ma wartość Opera, a w Operze 9.5alpha Netscape. Na szczęście łatwo to zmienić w opera:config.

woj-tek napisał(a):

Originally posted by danadam:

lwiczek zwrócił uwagę, że na ap.nowe-programy zwrócili uwagę



Świetna konstrukcja wink

Wracając do tematu - dzięki za rozwiązanie, niemniej nasuwa się pytanie - po cóż oni to zmienili?!

daroc napisał(a):

A swoją drogą... po co sprawdzać, czy przeglądarka to netscape? Albo funkcja zwraca rok albo rok-1900? Czy nie tak?

operetka napisał(a):

Originally posted by danadam:

Nowa wersja, nowe problemy :-)

Na szczęście łatwo to zmienić w opera:config.


Ale tu są 3 razy AppName. O który chodzi? W którym zmienić na Operę?
AppName.png
Moja wersja to: 9.23, Kompilacja 8808
Nadmieniam, iż alphę usunęlam z dysku i rejestru.

danadam napisał(a):

Originally posted by operetka:

Ale tu są 3 razy AppName. O który chodzi? W którym zmienić na Operę?


Po kliknięciu w link, focus powinien znaleźć się w odpowiednim polu (przynajmniej u mnie tak jest). Chodzi o "JavaScript AppName".