[JS] onclick i stały rozmiar okna.

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

Witam,
potrzebuje popełnić skrypt, który na stałe przypisze rozmiar wszystkim wyskakującym okienkom (javascriptowym?), którym to twórcy stron lubią przypisywać różne dziwadła dla funkcji onclick.
Na przykładzie, bo niestety raczej nie jestem biegły w tych kwestiach i być może nikt mnie nie zrozumiał. Prosze wejść pod adres http://livescore.com bądź http://soccerstand.com i kliknąć w pierwszy-lepszy wynik spotkania. Bardzo mi zależy, by właśnie te wyskakujące okienka - jak wspomniałem wcześniej - otwierały się z przeze mnie określonym rozmiarem. Czy można coś z tym fantem zrobić ? Byłbym ogromnie wdzięczny za jakiekolwiek wskazówki, rady, ewentualnie gotowe rozwiązania ;)
Pozdrawiam.

quiris napisał(a):

A nie wystarczy: Preferencje -> Zaawansowane -> Zawartość -> Opcje Javascript… -> [ ] Pozwól na zmianę rozmiaru okien ?

mazunio napisał(a):

Właśnie rzecz w tym, że takie rozwiązanie nie sprawdza się kompletnie w jednej sytuacji - gdy z przeglądarki korzysta osoba niedowidząca, dla której Opera wyjątkowo wyświetla wszystkie strony powiększone (przykładowo) do 150%.
Tutaj objawia się mój problem. Owa Opera nie rozciąga tych wyskakujących okienek tak fajnie, by potrafiła dopasować ich rozmiar do aktualnie powiększonej treści i trzeba za każdym razem przewijać takie okienko albo rozciągać, by ogarnąć zawartość wzrokiem. Nie muszę pisać, że dla osoby, dla której obsługa komputera zaczyna się i kończy na słabym opanowaniu kłopotliwie poruszającego się kursora jest to kiepskie rozwiązanie. Dlatego chciałbym na stałe przypisać rozmiar tym że wyskakującym okienkom javascriptowym.
Generalnie wygląda to w tej chwili tak - http://static.flickr.com/45/131380567_a075901dfc_o.jpg (proszę nie zwracać uwagi na zmodyfikowany kod strony - UserJS + user.css)
Pozdrawiam.

p.s. zaciśnijmy sytuacje jedynie do strony http://livescore.com i Opery działającej ze standardowym powiększeniem dla stron równym 150%.

daroc napisał(a):

A opcja "always maximize, including popups" w preferences -> browsing nie wchodzi w grę?

mazunio napisał(a):

Przykro mi, ale niestety nie jest to dla mnie zadowalające rozwiązanie.

Gdybym tylko znał się chociaż troszke na javascripcie to machnąłbym jakąś prostą regułkę w 5 minut. A jak przypuszczam wystarczy jedynie, by Opera traktowała wszystkie linki z przypisaną funkcją onclick według własnej koncepcji. No ale... to trzeba było się naumieć programować za młodego ;)

I dość dziwne, że jeszcze do tej pory nikt nie napisał takiego skrypciku. Czyżby wszystkie osoby korzystające z Opery to same orły o sokolim wzroku ;) ?

Zajec napisał(a):

Mógłbym to zrobić, ale czy ktoś podpowie, jak dobrać się do kodu funkcji? Mam ją tylko jako "function", a potrzebuję jej kodu jak "string".

http://zajec.net/test/popup-size#

d.i.z. napisał(a):

Kod zobaczysz przez function.toString() albo same function też pokaże kod.

W tym konkretnym przypadku można by na przykład zrobić tak:

var newfunc = old.toString();
newfunc = newfunc.replace(/function[^\)]+\)/, "").replace("{", "").replace("}", "");
newfunc = newfunc.replace("lime", "red");
document.getElementById('test').onmouseover = function(e){ eval(newfunc) };


Brzydkie jak cholera, ale działa wink

Zajec napisał(a):

Ale ze mnie głąb :-| Próbowałem tego toString(), ale używałem jakiejś zastrzeżonej zmiennej "new".

mazunio napisał(a):

Przepraszam, że się przypominam, ale czy może już ktoś z Was coś wskórał ?
Chyba, że ten fragment kodu d.i.z-a to jest gotowe rozwiązanie ;) ? Jeżeli tak, to jak owe zastosować ?

d.i.z. napisał(a):

Może zadowili cię trochę inne podejście do tematu.

resize_popups.js

daroc napisał(a):

Przepraszam za zmianę tematu, ale w czym addEventListener jest lepsze od zwykłego onload? Czy obydwa zdarzenia są tak samo obsługiwane?

Update: Źle się wyraziłem - czy obydwie metody są tak samo obsługiwane? Bo chodzi przecież o te same zdarzenia.

d.i.z. napisał(a):

Może nie jestem najbardziej kompetentną osobą, żeby to wyjaśniać, ale...

Onload dla danego elementu może być tylko jeden. Jeżeli strona ustawia obsługę zdarzenia onload dla danego elementu, a my to zrobimy jeszcze raz w innym miejscu, to stara obsługa zdarzenia zostanie zastąpiona naszą nową funkcją.

Dodanie obsługi zdarzenia przez addEventListener pozwala na przydzieleniu wielu różnych funkcji do obsługi tego samego zdarzenia. Zostaną one wykonane jedna po drugiej.

Poza tym, addEventListener daje o wiele więcej możliwości, których nie da się uzyskać 'zwykłą' metodą.

mazunio napisał(a):

Dzięki d.i.z. Jestem naprawdę super wdzięczny. Pozdrawiam.