Zapisywanie zmiennych

w dziale Aplikacje dla Opery
kicaj napisał(a):

mam problem i nie mogę sobie już z tym poradzić, mianowicie chcę zrobić tak aby mój userJs zapisywał jakieś bzdury "gdzieś tam", aby po ponownym włączeniu opery mozna było to odtworzyć, wiem że da się to zrobić za pomocą cookies tyle że ciasteczka są odsyłane na serwer a tego nie chcę, bo tedy skrytp aż krzyczy że istnieje u użytkownika, coś takiego jak Greasemonkey pod FF, wiem że opera ma zrobioną emulacje GM_setValue i GM_getValue ale i tak to się opiera na cookies, probowałem wrzucić coś do opera.setPreference ale też nie da rady tego oszukać, ktoś ma jakieś pomysły?

bartekk napisał(a):

Jeżeli bardzo ci na tym zależy możesz skorzystać z serwera www z podpiętą bazą danych i np. php (lub jezeli rzeczy jest wyjątkowo mało można i bez bazy). Dostać się do niego możesz przez niewidoczną ramkę, a rozmawiać z nią przez wiadomości (bo ajax nie działa między domenami). Jeżeli to Ciebie satysfakcjonuje służę przykładami.
pozdrawiam bartek

Zajec napisał(a):

Niestety, mało ciekawe rozwiązanie gdy skrypt chcemy udostępnić setce ludzi.

kicaj napisał(a):

juz nad tym myślałem i doszedłem do wniosku że to nie wypali bo tak czy siak każde ustawienie musiało by być dla innego użytkownika co za tym idzie musiało by wejśc system loginów i haseł, a co za tym idzie że gdzieś to musiało by być przechowywane po stronie użytkownika, bo co odśieżenie strony przecież bym się o nie ni pytał, a zapis do pliku samego skryptu odpada bo bym mógł odrazu wywalać na ekran jakie ustawienia by miał on tam zapisać

chyba poprostu tego się nie da zrobić kto wie może Opera Team może kiedyś coś zrobi w tę stronę

kicaj napisał(a):

sprobowałem zrobic to za pomoca ajaxa (zapis ustawien na serwerze w MySQL) ale nie da rady z prostej przyczycny: przeglądarki takie jak Opera, FF zabraniają na komunikowanie się XMLHttpRequestz serwerami z obcych domen czyli skrypt jest uruchomiony np. na onet.pl ale danych nie pobierze z wp.pl, bo to grozilo by utraty, kradziezy danych (chodzi tu o cookies)
teraz to już kompletnie mi zabrakło pomysłów

bartekk napisał(a):

Jeżeli wchodzi w grę zapisywanie na serwerze MySQL to można obejść zakaz komunikacji (choć nie powiem by rozwiązanie było eleganckie)
- za pomocą userjs wstawiasz niewidoczną ramkę (iframe) z plikiem ze strony która siedzi na tym samym serwerze co skrypt komunikujący się z bazą (php czy jsp w sumie wszystko jedno, ajaxem można to też robić)
- komunikację robisz poprzez sendMessage i dodanie listnenera dla message po drugiej stronie. (jeżeli zrobisz obie funkcje w iframe i dodasz obie w userjs podstawowej strony to możesz sobie swobodnie przesyłać informacje).

W ten sposób tworzysz tak jakby kanał dostępu do twojego serwera (z zachowaniem zasad bezpieczeństwa js). Pisałem kiedyś coś takiego na potrzeby jednej gierki by zobaczyć czy się da. No więc da się i nawet ładnie to chodzi tylko trzeba się sporo naklepać (lub stworzyć sobie jakiś quasi protokół wymiany wiadomości pamiętając że ma to służyć jako tunel, wtedy łatwiej nad tym zapanować)
pozdrawiam

draczeek napisał(a):

kicaj -> trzymam za Ciebie kciuki bigsmile

kicaj napisał(a):

Bartku a mógł byś mi powiedzieć jak skomunikować tę moją ramke iframe z documentem, bo tyle co rozumiem to ajax jest w ramce ale żeby się dostać aby go wywołać to jest trochę ciężko, chyba że jest jakiś sosób do uruchamiania funckji z ramki. Oczywiście można jeszcze zrobić komunikacje przez wstawianie danych do formularza ramki ale nie wiem czy to by nie było na około

btw, w operze 9, chyba jest nawet zabronione używanie innerHTML i innerText na ramce z obcego serwera

daroc napisał(a):

Jeśli ramka jest w innej domienie, to o ile pamiętam, nie możesz z tą ramką (ani przy pomocy ramki) zrobić nic. Jeśli byłoby inaczej, to byłoby bardzo źle (wyciąganie haseł, numerów kont, pinów itp.). Chyba że chodzi o coś innego...

kicaj napisał(a):

no tak, tyle to i ja wiem, ale że bartekk napisał że kiedyś zrobił coś takiego i jestem ciekawy jak to zrobił

Zajec napisał(a):

Nie da się pobierać informacji ze strony otwartej w iframe. Przynajmniej z tej z obcego serwera. To samo mi dokuczało przy widgecie: http://my.opera.com/community/forums/topic.dml?id=154470