Co to jest? Skrypty Użytkownika (ang. User JavaScript) są nową funkcjonalnością Opery pozwalającą użytkownikowi na dodanie do wszystkich oglądanych stron skryptów napisanych w języku JavaScript. Użytkownicy znający JS mogą pisać własne skrypty, którymi mogą się również dzielić z innymi.
Po co to wszystko? Technika ta pozwala między innymi na:
naprawę błędnie działających stron
dodanie do istniejących stron nowych funckjonalności
Włączanie funkcji Skryptów Użytkownika 1. Zakładamy dowolnie wybrany katalog, w którym będziemy umieszczać skrypty użytkownika, np. C:\MojeSkrypty 2. W Narzędzia -> Preferencje -> Zaawansowane -> Zawartość -> Opcje Javascript... -> Moje pliki pliki Javascript wskazujemy założony właśnie katalog. 3. Umieszczamy w założonym katalogu pliki ze skryptami użytkownika. Muszą one mieć rozszerzenie .js lub .user.js 4. Skrypty działają natychmiastowo po przeładowaniu danej strony. Nie trzeba restartować Opery.
Na spokojnie popatrzymy jak to fukcjonuje w praktyce i się zobaczy
quiris napisał(a):
Pierwsze wrażenia: sygnatury się nie generują Konsola pluje moim ulubionym błędem toObject conversion :-/
lockoom napisał(a):
Trzeba dać w zdarzenie onload, albo zrobić setTimeout na np. sekundę.
/edit: BTW: to wymiata
quiris napisał(a):
Originally posted by lockoom Trzeba dać w zdarzenie onload, albo zrobić setTimeout na np. sekundę.
I jest bez sensu, bo strona mi miga przy onload. Ten sam brzydki efekt, jak w pierwszej wersji graala:-/ Powinno być, opcja ładowania skryptu, po załadowaniu drzewa XML. A może da się to zrobić przy pomocy tych document.addEventListener co to hallvord mi radził?
lockoom napisał(a):
eventlistner nic tu nie pomoże, bo robi dokładnie to samo (no może nie 'dokładnie' ). Chyba, że jest zdarzenie onloaddocumenttreebutbeforedisplay
daje niezly efekt (nie wiem co znaczy, ze miga - moze ze wzgledu na transfer wystarczajaca szybko mi sciaga i nie widze tego problemu)
lockoom napisał(a):
Ja też migania nie widzę, ale problem z generowanie id polega na tym, że chcemy dopisać ID do body natychmiast, a nie po załadowaniu dokumentu, bo wtedy i tak Opera pobierze wszystkie banery, flashe etc., które skrupulatnie w CSS wyłączyliśmy addEventListner('load', fun) różni się tym od onload=fun, że za jego pomocą możne przypisać wiele funkcji do obsługi tego samego zdarzenia. W przypadku onload jestem prawie pewien, że nasza funkcja obsługi została by nadpisana przez skrypty na stronie także korzystające z tego zdarzenia. Myślę, że w tym przypadku najlepszy będzie setTimeout(fun, 500).
quiris napisał(a):
Originally posted by TomekQ nie probowalem z setTimeout, ani z onload, ale
mi nie działa? Przecież działało mi w CSS? Różnica jest w dwóch slaszach
lockoom napisał(a):
Tak teraz podwójne slashe muszą odejść Pozostać ma jeden. Spróbuj tego:
function _USER_JS_start(){
with(document.body)
if (!hasAttribute('id'))
setAttribute('id', location.host.replace(/^www\./,'').replace(/^[0-9]/,'_$&').replace(/\./g,'-'))
}
setTimeout(_USER_JS_start, 500)
quiris napisał(a):
Tak teraz podwójne slashe muszą odejść
Możesz mi wytłumaczyć dlaczego?
quiris napisał(a):
Spróbuj tego:
No i guzik. Nie działa.
lockoom napisał(a):
Bo wtedy cały kod JSa był zawarty w cudzysłowach, czyli był ciągiem znaków. A więc slasha trzeba było podwoić żeby był traktowany jak slash, a nie jako znak ucieczki.
No i guzik. Nie działa.
jak to nie działa? Nadal ci miga? Czy w ogóle? Jeśli w ogóle to coś masz źle, bo mi ten kod działa.
TomekQ napisał(a):
Originally posted by lockoom Ja też migania nie widzę, ale problem z generowanie id polega na tym, że chcemy dopisać ID do body natychmiast, a nie po załadowaniu dokumentu, bo wtedy i tak Opera pobierze wszystkie banery, flashe etc., które skrupulatnie w CSS wyłączyliśmy :)
to po nacisnieciu F5 na losowej stronie na onecie progress bar pokazuje, ze ma sciagnac 29 obrazkow, przy wylaczonym sciaga 30, czyli daje oczekiwany efekt EDIT: z gory zastrzegam, ze na js sie nie znam i nie wiem czemu cos dziala, albo nie, wszystko co umiescilem do tej pory, to tylko tworcza adaptacja tego co juz bylo na forum, albo u Hallvorda
lockoom napisał(a):
Podejrzewam, że ci działa, bo masz niepoprawny CSS. Tzn. poprawny składniowo, ale niepoprawny ze względu na to co chciałeś uzyskać.
#onet-pl embed[type="application/x-shockwave-flash"], <-- to się odnosi tylko do onetu
object[type="application/x-shockwave-flash"], <-- a to i...
object[classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"] { <-- ...to jest globalne
display: none !important;
}
Jeśli chciałbyś żeby te style działy tylko dla onetu to powinny wyglądać tak:
Originally posted by lockoom Podejrzewam, że ci działa, bo masz niepoprawny CSS. Tzn. poprawny składniowo, ale niepoprawny ze względu na to co chciałeś uzyskać.
rzeczywiscie:(, ale Twoja propozycja z setTimeout tez nie dziala:( (laduje flash w wersji poprawionej - #info-onet-pl). EDIT: moja metoda nadaje sie do korygowania bledow css (choc juz wiem co quiris mial na mysli mowiac ze miga - sprobujcie zmienic kolor czcionki z tym jako js) EDIT: lockoom przy bawieniu sie czasem ustawionym w setTimeout mozna uzyskac wylaczanie tego flasha, ale wydaje mi sie, ze i tak go sciaga (nie wcelowalem w czas taki, zeby dodawalo id i nie chcialo sciagac), w dodatku przy nieprzewidzianych opoznieniach to rozwiazanie nie podziala. Ale zeby tak pesymistycznie nie konczyc to
wylacza target="_blank" (przerobka kodu stworzonego przez quirisa)
d.i.z. napisał(a):
Originally posted by quiris No i guzik. Nie działa.
Trochę już straciłem wątek i nie wiem co działa a co nie ale jeżeli nie działał kod do tworzenia id to ten powinien działać:
document.addEventListener('load', function _USER_JS_start(){
with(document.body)
if (!hasAttribute('id'))
setAttribute('id', location.host.replace(/^www\./,'').replace(/^[0-9]/,'_$&').replace(/\./g,'-'))
}, false);
Skopiowałem po prostu kod Hallvord'a.
A czy na pewno działa można sprawdzić uruchamiając:
java[b][/b]script:alert(document.body.id)
d.i.z. napisał(a):
Chciałbym spróbować trochę ulepszyć kod tego forum tzn dodać wsparcie dla document.selection przy odpowiadaniu. Pomijając fakt, że nie mam za bardo czasu to jeszcze stanął mi na drodze (do gwiazd) duży problem. Nie mogę ze skryptu odwołać się do innych funkcji zdefiniowanych w zewnętrznych plikach (vbcode.js). Dostaje ReferenceError. Myślałem, że skrypty w user js mają jakieś większe 'pole widzenia'. Orientuje się ktoś czy da się to jakoś obejść?
I tak generuje id dopiero po otwarciu calej strony, wiec dalej trzeba szukac obejscia, albo pogodzic sie z faktem, ze stronki beda dostosowywac sie po chwili.
Zgadnijcie jaki kod ma zawarta w nim funkcja bodyIDforAll() [/B]
Za to funkcja killBlank(), zabijajaca target="_blank" rozni sie od rozwiazania zaproponowanego przez quirisa
lockoom napisał(a):
Originally posted by TomekQ I tak generuje id dopiero po otwarciu calej strony
Ja w moim UserJS uzywam setTimeout z malym opoznieniem. Nie jest idealny, ale na pewno lepszy niz generowanie ID dopiero po zaladowaniu dokumentu.
quiris napisał(a):
Ja w moim UserJS uzywam setTimeout z malym opoznieniem. Nie jest idealny, ale na pewno lepszy niz generowanie ID dopiero po zaladowaniu dokumentu.
Ok. U mnie z 500 ms nie działa. Z 1000ms działa, ale nie zawsze. Raz załapie, raz nie. Jednym słowem do [---] z taką robotą... Gral w tym obszarze żondzi Poza tym jeśli nie chcę w danej chwili fixów to je po prostu guziczkiem wyłączam. A z user.js to hmm... nie jest na razie tak różowo. IMO powinien być przycisk, który umożliwiałby szybkie wyłączanie user.js.
d.i.z. napisał(a):
document.selection addon for my.opera.com
Udało się po części poprawić kod tego forum. Przy odpowiadaniu/tworzeniu wątków można zaznaczyć jakiś tekst w polu edycyjnym i go np. pogrubić. Na nic więcej nie mam czasu niestety, a chciałem jeszcze trochę to ulepszyć. Chociaż w sumie to Opera folks powinni wcześniej czy później poprawić kod tego forum
Originally posted by d.i.z. Chociaż w sumie to Opera folks powinni wcześniej czy później poprawić kod tego forum
Na pewno nie tego. Powstaje zupełnie nowe, w całości stworzone przez OS forum.
quiris napisał(a):
Na pewno nie tego. Powstaje zupełnie nowe, w całości stworzone przez OS forum.
Ale w wypadku tego skryptu napisali, że w momencie ogłoszenia finalnej wersji Ósemki skrypt zostanie poprawiony. Teraz pytanie. Co będzie piersze: finalna Ósemka, czy nowe forum?
quiris napisał(a):
Straciłem zaufanie do User JS. Włączona nawet z pustym plikiem JS może spowolnić działanie Opery i powodować crashe . Np. na www.kuratorium.kielce.pl z włączonym pustym JS mam zwolnione działanie: widzę przez pięć sekund ładowanie Completed request i przy wyjściu Opera wykłada się. Po wyłączeniu pliku user js jak ręką odjął :-/
Jakub81 napisał(a):
Originally posted by quiris Straciłem zaufanie do User JS. Włączona nawet z pustym plikiem JS może spowolnić działanie Opery i powodować crashe . Np. na www.kuratorium.kielce.pl z włączonym pustym JS mam zwolnione działanie: widzę przez pięć sekund ładowanie Completed request i przy wyjściu Opera wykłada się. Po wyłączeniu pliku user js jak ręką odjął :-/
potwierdzam
Moose napisał(a):
Originally posted by quiris Straciłem zaufanie do User JS. Włączona nawet z pustym plikiem JS może spowolnić działanie Opery i powodować crashe . Np. na www.kuratorium.kielce.pl z włączonym pustym JS mam zwolnione działanie: widzę przez pięć sekund ładowanie Completed request i przy wyjściu Opera wykłada się. Po wyłączeniu pliku user js jak ręką odjął :-/
Zlozyles bug report?
M.
quiris napisał(a):
Originally posted by Moose Zlozyles bug report?
Oczywiście złoże, ale najpierw muszę ochłonąć z przygnębienia spowodowanego tym faktem
lockoom napisał(a):
Google Suggest
Lubicie Google Suggest? Chcielibyście żeby działało na zwykłych stronach Google? Dopiszcie następujący kod do waszego UserJS:
if (document.location.host.indexOf('google.') > -1){
setTimeout(_USER_JS_googleSuggestDownload, 500)
}
function _USER_JS_googleSuggestDownload(){
if (document.body && document.body.firstChild){
var x = document.createElement('script');
document.body.insertBefore(x, document.body.firstChild)
x.type = 'text/javascript';
x.src = '/ac.js';
document.addEventListener('load', _USER_JS_googleSuggestInstall, false);
} else {
setTimeout(_USER_JS_googleSuggestDownload, 500)
}
}
function _USER_JS_googleSuggestInstall(){
var googleFrm = (document.gs ? document.gs : document.f);
InstallAC(googleFrm, googleFrm.q, googleFrm.btnG, 'search', 'en');
}
TomekQ napisał(a):
na forum bety pojawil sie skrypt utrudniajacy wykrywanie opery przy pomocy window.opera, wyglada na to, ze user.js to rzeczywiscie potezne narzedzie
Ten człowiek do niedawna miałby rację. Obecnie nie ma, ponieważ ten skrypt nie powinien działać, a działa! Nie powinien działać ponieważ właściwości obiektu navigator powinny być tylko do odczytu i do czasu wydania bety 3 tak było. Można to było obejść usuwając cały obiekt navigator, ale wtedy trzeba było odtwarzać wszystkie jego właściwości. Mam mieszane uczucia co do tego. Potencjalnie może to działać na szkodę Opery (jej obecność w statystykach). A może jestem tylko przewrażliwiony Na szczęście gemius jest na to odporny Oczywiście gemiusa można wyprowadzić w pole, ale inną metodą.
TomekQ napisał(a):
Originally posted by quiris Potencjalnie może to działać na szkodę Opery (jej obecność w statystykach). A może jestem tylko przewrażliwiony
juz powstala wersja dzialajaca tylko z wpisami z ua.ini (przy 4 i 5 oczywiscie;)). Moze wreszcie glosy mowiace, ze Opera zle otwiera strony znikna calkowicie:hat:
lockoom napisał(a):
Tak. Właśnie czytam. Kilka ciekawych możliwości się pojawia. Natomiast ja mam pytanie z innej beczki. Jak wyłączyć przy pomocy JS scrolling="yes" w znaczniku <frame>? Wg danych z moich eksperymentów nie jest to możliwe. To jest krytycznie dla mnie ważne
lockoom napisał(a):
Chyba się nie da. Jak dobieram się do ramki przez document.frames to Opera zabrania zmiany (a nawet odczytu) wartości atrybutów ze względów bezpieczeństwa (lekka przesada). Jeśli użyję document.getElementsByTagName('frame') to atrybut mogę odczytać/zmienić, ale niestety Opera nie reaguje na te zmiany :/
quiris napisał(a):
eśli użyję document.getElementsByTagName('frame') to atrybut mogę odczytać/zmienić, ale niestety Opera nie reaguje na te zmiany :/
Dokładnie! Czyżby ugi bugi? Zadam pytanie na Beta Testing. Pytanie nr 2: Nie mogę sobie poradzić z wyłączeniem tego p....go skryptu livechat na www.helion.pl przy pomocy UserJS Przy pomocy grala nie było problemu
lockoom napisał(a):
Originally posted by quiris Pytanie nr 2: Nie mogę sobie poradzić z wyłączeniem tego p....go skryptu livechat na www.helion.pl przy pomocy UserJS Przy pomocy grala nie było problemu
window.opera.addEventListener('BeforeExternalScript', function (ev){ if (ev.element.src.indexOf('livechat') > -1) ev.preventDefault() }, false);
quiris napisał(a):
Originally posted by lockoom
window.opera.addEventListener('BeforeExternalScript', function (ev){ if (ev.element.src.indexOf('livechat') > -1) ev.preventDefault() }, false);
Nixer napisał(a):
Ja mam taką małą prośbę: może komuś chciałoby się zrobić przykładowy user.js dla polskiego użytkownika z jakimiś podstawowymi funkcjami (typu google suggest lockooma) i instrukcją "dla opornych" która funkcja jest od czego i jak sobie zakomentować albo odkomentować coś, żeby działało?
TomekQ napisał(a):
Originally posted by Nixer Ja mam taką małą prośbę: może komuś chciałoby się zrobić przykładowy user.js dla polskiego użytkownika z jakimiś podstawowymi funkcjami (typu google suggest lockooma) i instrukcją "dla opornych" która funkcja jest od czego i jak sobie zakomentować albo odkomentować coś, żeby działało?
lepsze byloby cos takiego
Originally posted by hallvors Suggestion for maintaining a complex set of User JavaScripts:
Create a folder - say c:\opera\userjs
Place files from various people that you would like to use there
Hehehe Zkustomizuj sobie google. http://www.customizegoogle.com/ Można sobie wybrać co ma się nam na google pokazywać... Ciekawe... //edit: chociaż mi nie działa za bardzo...
Jakub81 napisał(a):
Originally posted by adas http://nontroppo.org/wiki/PolskiUserJS - 3 znalezione na naszym forum kody wstawione. Teraz jeszcze jakichś znawców do opisania do czego to służy, znalezienia błędów i dodania kolejnych kodów.
Originally posted by Nixer Ja mam taką małą prośbę: może komuś chciałoby się zrobić przykładowy user.js dla polskiego użytkownika z jakimiś podstawowymi funkcjami (typu google suggest lockooma) i instrukcją "dla opornych" która funkcja jest od czego i jak sobie zakomentować albo odkomentować coś, żeby działało?
http://nontroppo.org/wiki/SkryptyUzytkownika - 3 znalezione na naszym forum kody wstawione. Teraz jeszcze jakichś znawców do opisania do czego to służy, znalezienia błędów i dodania kolejnych kodów.
1. blokuje wszystkie zewnetrzne skrypty 2. pozwala na ladowanie tylko lokalnych skryptow 3. pozwala na obejscie problemu braku CSS3 selectors w Operze 4. pozwala na stylizacje calej strony, a nie tylko elementu body i jego descendants
Skrypt napisany przez Marka Wilton-Jonesa z Øpera Software, wg. moich wskazowek.
M.
Jakub81 napisał(a):
Jak tylko usuną crashbuga w obsłudze user.js, to zacznę go używać.
EDIT: Eee... to blokuje wszystkie skrypty ze strony? To nie zacznę.
Moose napisał(a):
Originally posted by Jakub81 Eee... to blokuje wszystkie skrypty ze strony? To nie zacznę.
A co ci przeszkadza usunac trzy pierwsze linie? A uzywac ci przeciez nikt nie kaze
Wszystko ładnie i pięknie tylko problem blinkania pozostaje :-/
lockoom napisał(a):
Na pierwszy rzut oka to na pewno musisz zamienić wszystkie & na &
ben4alfa napisał(a):
Czy mógłby ktoś przejrzeć mój user.js lub zamieścić swój , ew screenshota z działaniem bo u mnie nie chce działać. Głownie chodzi mi o 2 rzeczy: - Google suggest - alt title w dymku
Co ciekawe Oper plik user.js widzi bo w opera:about mam coś takiego User JavaScript file C:\Program Files\Inet\Opera\profile\user.js
Może kogoś ucieszy, że napisałem userJS dodający obsługę atrybutu "defer" znacznika <script>. Zainteresowani wiedzą o co chodzi Generalnie teraz żadne "gemiusy" nie powinny zawieszać ładowania strony.
window.opera.addEventListener('BeforeExternalScript',
function (ev){
if (ev.element.defer == true){
window.addEventListener('load', function(){
var x = document.createElement('script');
document.body.appendChild(x);
x.type = 'text/javascript';
x.src = ev.element.src;
}, false);
ev.preventDefault();
}
}, false);
adas napisał(a):
Re: <script defer="defer">
Originally posted by lockoom Może kogoś ucieszy, że napisałem userJS dodający obsługę atrybutu "defer" znacznika <script>. Zainteresowani wiedzą o co chodzi Generalnie teraz żadne "gemiusy" nie powinny zawieszać ładowania strony.
Po omówieniu sprawy z moimi prawnikami doszedłem do wniosku, że tak
quiris napisał(a):
Może kogoś ucieszy, że napisałem userJS dodający obsługę atrybutu "defer" znacznika <script>. Zainteresowani wiedzą o co chodzi Generalnie teraz żadne "gemiusy" nie powinny zawieszać ładowania strony.
To jeszcze poprosimy o ładny opis skryptu, co jak i dlaczego
adas napisał(a):
Re: Re: Re: <script defer="defer">
Originally posted by lockoom Po omówieniu sprawy z moimi prawnikami doszedłem do wniosku, że tak
To szybkich masz tych prawników... moi się mną jeszcze nie zainteresowali
lockoom napisał(a):
Originally posted by quiris To jeszcze poprosimy o ładny opis skryptu, co jak i dlaczego
Rejestruję funkcję, która będzie wykonywana przed załadowaniem zewnętrznego skryptu.
function (ev){
if (ev.element.defer == true){
Jeśli dany skrypt ma atrybut "defer" to...
window.addEventListener('load', function(){
...rejestruję funkcję, która wykonana będzie po załadowaniu dokumentu, a w której...
var x = document.createElement('script');
document.body.appendChild(x);
x.type = 'text/javascript';
x.src = ev.element.src;
}, false);
....tworzę nowy element <script> i przypisuję mu atrybut "src" taki sam jak tego co to ma się za chwilę załadować, chyba że...
ev.preventDefault();
...mu na to nie pozwolę
}
}, false);
Zamykanie nawiasów
W skrócie jeśli skrypt napotka znacznik script z atrybutem defer to zatrzyma ładowanie jego zawartości i po załadowaniu całego dokumentu utworzy nowy skrypt z identyczną zawartością jak ten zatrzymany.
Moose napisał(a):
Problem blinkania (flash of unmoosified content) czesciowo usuniety. Fix Iana.
M.
quiris napisał(a):
Originally posted by Moose Problem blinkania (flash of unmoosified content) czesciowo usuniety. Fix Iana.
To rozwiązanie zaproponował lockoom zaraz po tym jak problem "blinakania" stylów się objawił. setTimeout jest tak naprawdę do niczego. Zajrzyj do wątku http://my.opera.com/forums/showthread.php?s=&threadid=84519 tam dokładnie pisaliśmy, że są z tym problemy. Ja potrzebuję metody jednoznacznego dowiedzenia się kiedy Opera załaduje dany element do pamięci i zacznie go wyświetlać. Na razie nikt tego nie wymyślił. Choć UserJS i nowe operowe zdarzenia dają ogromny potencjał i kto wie, czy wkrótce jakiś mastaha nie wymyśli stuprocentowo skutecznej metody. Czego Wam i sobie życzę
PS. Na liście autorów rozwiązania brakuje mi lockooma, który tak naprawdę pierwszy wymyślił tę, wykorzystywaną przez opisywany przez ciebie skrypt, metodę automatycznej generacji identyfikatorów
Moose napisał(a):
Originally posted by quiris To rozwiązanie zaproponował lockoom zaraz po tym jak problem "blinakania" stylów się objawił. setTimeout jest tak naprawdę do niczego. Zajrzyj do wątku http://my.opera.com/forums/showthread.php?s=&threadid=84519 tam dokładnie pisaliśmy, że są z tym problemy. Ja potrzebuję metody jednoznacznego dowiedzenia się kiedy Opera załaduje dany element do pamięci i zacznie go wyświetlać. Na razie nikt tego nie wymyślił. Choć UserJS i nowe operowe zdarzenia dają ogromny potencjał i kto wie, czy wkrótce jakiś mastaha nie wymyśli stuprocentowo skutecznej metody. Czego Wam i sobie życzę
PS. Na liście autorów rozwiązania brakuje mi lockooma, który tak naprawdę pierwszy wymyślił tę wykorzystywaną przez opisywany przez ciebie skrypt metodę automatycznej generacji identyfikatorów
Owszem, jest do niczego. Mod napisal Ian w mojej obecnosci. Nie bede w to wnikal kto to zrobil pierwszy, poniewaz sam wrocilem do stanu poczatkowego.
Ta dyskusja ma sie do sedna metody jak piesc do nosa, i szczerze mowiac nie chce sprowadzac watku o czym innym na inne tory.
edit: usunalem mod z mojego serwera.
M.
quiris napisał(a):
Owszem, jest do niczego. Mod napisal Ian w mojej obecnosci. Nie bede w to wnikal kto to zrobil pierwszy, poniewaz sam wrocilem do stanu poczatkowego.
Ta dyskusja ma sie do sedna metody jak piesc do nosa, i szczerze mowiac nie chce sprowadzac watku o czym innym na inne tory.
Podsumowując: Sygantury CSS są znakomitą sprawą. O tym wiemy wszyscy. Jednak droga do nich jest ciernista
Moose napisał(a):
</>
M.
lockoom napisał(a):
Originally posted by quiris PS. Na liście autorów rozwiązania brakuje mi lockooma, który tak naprawdę pierwszy wymyślił tę wykorzystywaną przez opisywany przez ciebie skrypt metodę automatycznej generacji identyfikatorów
heh, no nie przesadzajmy, ja po prostu twórczo rozwinąłem twój pomysł. Zresztą żaden z nas nie był pierwszy. W repozytorium Greasemonkey znalazłem podobny skrypt napisany nieco wcześniej.
quiris napisał(a):
heh, no nie przesadzajmy, ja po prostu twórczo rozwinąłem twój pomysł. Zresztą żaden z nas nie był pierwszy. W repozytorium Greasemonkey znalazłem podobny skrypt napisany nieco wcześniej.
Uhm. Faktycznie podobny, ale nie pozbawiony wad. Przede wszystkim problem identyfikatorów, które nie mogą rozpoczynać się od cyfr. www.opera.com i opera.com dostają inne identyfikatory itp.
Moose napisał(a):
Originally posted by lockoom heh, no nie przesadzajmy, ja po prostu twórczo rozwinąłem twój pomysł. Zresztą żaden z nas nie był pierwszy. W repozytorium Greasemonkey znalazłem podobny skrypt napisany nieco wcześniej.
Nie przesadzajmy to malo powiedziane.
To jest javascript. Zadania o dopisanie kogos do listy autorow tylko dlatego, ze korzystal z tych samych znanych od lat konstrukcji (Ian napisal je w locie na IRC, tak na marginesie), jest tak samo idiotyczne i malostkowe jak domaganie sie "credit" za uzywanie display: none;.
Zaden z was nie mial udzialu w tworzeniu tej metody, i zanim sie ktos zacznie domagac 'credit' (nie ma zreszta za co), wypadaloby najpierw sie zapytac. Co za bezczelnosc.
M.
p.s. Mialem nie odpisywac, ale odpisalem, bo mnie szlag trafil, a tu swieta za rogiem, i wole miec to z glowy.
lockoom napisał(a):
Ja się nie domagam więc nie wiem do kogo te słowa. Wszystko co tu umieszczałem było dla ogółu i nigdy nie opatrywałem swojego kodu 'creditami', a tym bardziej nie domagałem się się o dodanie mojego nazwiska do czyjegoś. Więc jeśli kogoś może szlag trafić to mnie, bo zostałem nazwany bezczelnym, małostkowym idiotą :/
A tak na marginesie to twoja argumentacja jest bez sensu. To, że konstrukcje danego języka są znane nie znaczy, że każdą rzecz da się rozwiązać w jeden li tylko sposób. Ja czytając opis twojego rozwiązania, a zanim zobaczyłem kod nontroppo, miałem już pomysł jak go zrealizować i zapewniam cię, że implementacja różniła by się. Oczywiście nie jakoś znacząco, bo to nie jest skomplikowany problem programistyczny. Co nie zmienia faktu, że podpisywanie skryptu swoim nazwiskiem ma sens, bo jest to niewątpliwie jakieś "dzieło". Tak jak ty możesz podpisać swoim nazwiskiem pod wykonaną stronę WWW i żadać by nikt nie wykorzystywał twojego layoutu, tak ja mogę opatrzyć skrypt swoim. Co innego wiedzieć, że w CSS jest background-color, font-size etc., a co innego twórczo tę wiedzę wykorzystać.
Wesołych Świąt.
Moose napisał(a):
Originally posted by lockoom Ja się nie domagam więc nie wiem do kogo te słowa. Wszystko co tu umieszczałem było dla ogółu i nigdy nie opatrywałem swojego kodu 'creditami', a tym bardziej nie domagałem się się o dodanie mojego nazwiska do czyjegoś. Wesołych Świąt.
Nie do ciebie. Przeczytaj watek od poczatku.
Wesolych Swiat.
M.
Moose napisał(a):
Originally posted by lockoom A tak na marginesie to twoja argumentacja jest bez sensu. To, że konstrukcje danego języka są znane nie znaczy, że każdą rzecz da się rozwiązać w jeden li tylko sposób. Ja czytając opis twojego rozwiązania, a zanim zobaczyłem kod nontroppo, miałem już pomysł jak go zrealizować i zapewniam cię, że implementacja różniła by się. Oczywiście nie jakoś znacząco, bo to nie jest skomplikowany problem programistyczny. Co nie zmienia faktu, że podpisywanie skryptu swoim nazwiskiem ma sens, bo jest to niewątpliwie jakieś "dzieło". Tak jak ty możesz podpisać swoim nazwiskiem pod wykonaną stronę WWW i żadać by nikt nie wykorzystywał twojego layoutu, tak ja mogę opatrzyć skrypt swoim. Co innego wiedzieć, że w CSS jest background-color, font-size etc., a co innego twórczo tę wiedzę wykorzystać.
Kontynuujac margines, nie widze, zeby moja argumentacja byla bez sensu. CSS sygnatury "wymyslil" Eric Meyer, bardzo dawno temu. Identyfikator na body element zostal wymyslony wiele, wiele lat wczesniej. W XHTML 1.0 SE dodano mozliwosc dodawania ID do root element (tu: html). O ile mi wiadomo, ja jako pierwszy popularyzowalem zmiane signatures z body na root dwa lata temu, o ile nie wczesniej. Napisalem artykuly i rozne dokumenty na ten temat, probujac przekonywac ludzi o stosownosci takiego rozwiazania. Do glowy mi nie przyszlo brac za to 'credit', bo to jest standard. Robilem to wiec na dlugo przed wami, wliczajac w to pisemne prosby to autorow stron, by taka sygnature dodali, bym mogl napisac swoje wlasne style do ich stron. Idea osobnych stylow uzytkownika do kazdej strony bez sygnatur byla dyskutowana od lat. Nie ostatnio Gecko wprowadzilo rodzaj managera. Na forach W3C od dawna dyskutowano nad najlepszym rozwiazaniem, ktory nie wymagalby wysilku od tworcow stron. @site rule bylo jednym z pomyslow. W swiecie Opery myslano tez nad tym kilka lat temu - mozna zapytac Jaxa o rozne wizje. Automatyczne dodawanie identyfikatorow, klas i innych atrybutow badz elementow jest stare jak swiat. Od tego jest DOM. Poczytac mozna strone PPK, na przyklad, jesli nie same standardy. Server manager w Operze to rozniez stary pomysl, ostatnio odgrzebany przez mnie i Iana w 2004 roku. Problem identyfikatora na root jest problemem starszym niz dokonania osob tu piszacych, w tym jednej oskarzajacej mnie o zlodziejstwo idei. Moje rozwiazanie rowniez bazuje na wczesniejszych osiagnieciach. Rozbicie identyfikatora na wielokrotne klasy rowniez jest starym rozwiazaniem, jak i rozbicie zlozonych selectors na podklasy. Powstalo ono razem ze stworzeniem css3 selectors, na dlugo przed oficjalna specyfikacja z 2001 roku. jest jedna osoba ktora te wlasciwosc standardu wykorzystywala w swoich aplikacjach. To jest sedno standardu kady moze jewykorzystywac jak chce. Wiec i ja wpadlem na pomysl, zeby moje wieloletnie pragnienie zrealizowac, i napisalem w zwiazku z tym algorytm. O napisanie skryptu poprosilem Marka W.J. z Opery, i razem siedzielismy przez dluzszy czas na IRC, kiety to pod moje wskazowki napisal on skrypt od poczatku. 'Credit' taki jaki musi byc jest podany w moim artykule, gdzie oglosilem metode i skrypt, pare rozwiazan, w ktorych mialem wielki udzial. Skrypt zostal napisany w calosci przez Marka, a ja tylko poprawilem maly nieistotny blad. istnial problem, wiec zapytalem Iana o rozwiazanie, i napisal je w locie. Nie bylo dobre, wiec zostalo wymazane. Wczoraj w nocy siedzialem z Markiem jeszcze raz nad problemem, i efektem jest obecna wersja skryptu, 2.0. bedzie jeszcze trzecia. Ja osobiscie zawsze podaje 'credit', gdy cos od kogos biore, ale w tym wypadku jest to absolutnie nieuzasadnione, co autor oskarzen mogl ode mnie uslyszec at length, gdyby sie zapytal, zamiast inputowac mi przywlaszczanie sobie cudzych idei. Idee te sa stare, i tysiace osob o tym myslay od bardzo dawna, wliczajac w to mnie, zanim osoba oskarzajaca sie tym zajmowala. Przykro mi jest, ze zadza zablysniecia spowodowala kogos do napisania czegos takiego publicznie. Osobie oskarzajacej dodam - nie ma 'credit', i nie bedzie, poniewaz sie nie nalezy. Koniec marginesu. A ciebie Lockoom przepraszam, jesli moje wzmocnienie twojej wiadomosci odebrales jako atak na swoja osobe. Cytowalem cie, poniewaz chcialem rozwinac twoje "nie przesadzajmy". Skrypt jest podpisany tak, jak jest, poniewaz to byly osoby ktore go zaprojektowaly i napisaly. Artykul napisalem rowniez ja. Nigdzie ani ja ani Mark nie twierdzimy ze jestesmy 'pierwsi'. Oferujemy swoja prace dla innych do wykorzystania, i nie opatrujemy swojej pracy zadnym copyright. Free to take, free to reuse with no credit.
I tyle mam z podzielenia sie swoja praca na tym forum. Zastanowie sie na drugi raz kilka razy, zanim sie czymkolwiek tutaj podziele.
M.
lockoom napisał(a):
Zaden z was nie mial udzialu w tworzeniu tej metody, i zanim sie ktos zacznie domagac 'credit' (nie ma zreszta za co), wypadaloby najpierw sie zapytac. Co za bezczelnosc.
Przeczytałem wątek od początku i jeśli powyższe zdanie nie było m.in. do mnie to do kogo? Do quirisa i jakieś tajemniczej persony? To w takim razie skąd małostkowość przypisywana quirisowi skoro jemu brakowało mojego nicka, a nie własnego? Pomijam już fakt, że nie było w jego wypowiedzi żadnego żądania.
W każdym razie jak dla mnie raczej EOT.
Moose napisał(a):
Originally posted by lockoom W każdym razie jak dla mnie raczej EOT.
Ditto.
Niniejszym rezygnuje tez z udzialu w polskim forum.
M.
Gargamel napisał(a):
Originally posted by Moose Niniejszym rezygnuje tez z udzialu w polskim forum.
M.
Plaga jakaś? Najpierw Ryszard, teraz Moose...
Gargamel napisał(a):
Wiecie co Wam powiem?
Zbyt skomplikowana składnia jak dla mnie . W Proxomitronie i Privoxy wszystko wiadomo - proste jak budowa cepa. Znaleźć, wyciągnąć charakterystyczne elementy i zamienić. A tutaj musiałbym chyba ze 3 dni siedzieć nad skryptem dla najprostszego nawet problemu.
To nie krytyka samego rozwiązania, bo go dobrze nie znam. Pewnie jest świetne, ale przerasta (może na razie) moje możliwości. A właściwie jakie są jego zalety w porównaniu z lokalnymi proxy? Oczywiście prócz braku konieczności ich instalowania i wstępnej konfiguracji.
lockoom napisał(a):
Zaraz, zaraz Mooose, dopiero teraz zauważyłem, że edytowałeś posta i teraz już jestem zupełnie zdziwiony. Wydaje mi się, że źle zrozumiałeś wypowiedzi moje i quirisa. W każdym razie ja na pewno nie zarzucam ci kradzieży niczyjej idei. Pomysł z wieloma klasami zamiast id jest świetny i już się na niego przeniosłem. Moje uwagi na temat tego, że "nie byliśmy pierwsi" odnosiły się do rozwiązania quirisa i mojego rozwinięcia jego idei i nie miały na celu zmuszenia cię do dopisania jakieś niezlicznej liczby osób do "credits", czy udowodnienia, że ukradłeś czyjś pomysł. Ja po prostu chciałem pokazać, że quiris i ja nie jesteśmy tacy genialni , bo my jedynie ponownie "wynaleźliśmy koło". W każdym razie jeśli którąś z moich wypowiedzi odebrałeś jako atak na swoją osobę, posądzenie o kradzież etc. to nie było to moją intencją. Podsumowując, moim zdaniem jest to wielkie nieporozumienie i szkoda gdybyś miał z tego powodu zrezygnować z udziału w polskim forum.
quiris napisał(a):
To jest javascript. Zadania o dopisanie kogos do listy autorow tylko dlatego, ze korzystal z tych samych znanych od lat konstrukcji (Ian napisal je w locie na IRC, tak na marginesie), jest tak samo idiotyczne i malostkowe jak domaganie sie "credit" za uzywanie display: none;.
Zaden z was nie mial udzialu w tworzeniu tej metody, i zanim sie ktos zacznie domagac 'credit' (nie ma zreszta za co), wypadaloby najpierw sie zapytac. Co za bezczelnosc.
Nie wiem, co Cię ugryzło w mojej uwadze. Nie domagałem się w niej żadnych "podziękowań" dla nikogo. Zauważyłem tylko, że skoro tam, na liście autorów, był nontroppo za dodanie linijki z setTimeout to równie dobrze mógł być lockoom, który podawał to rozwiązanie kilka dni wcześniej (a poza tym kilka jego innych idei/metod było wykorzystawanych w tym skrypcie). Podpowiem Ci, że to była ironiczna uwaga. Nie wiem skąd sobie ubzdurałeś, że ja (bo to chyba do mnie pijesz) domagam się jakiś "podziękowań" dla siebie. Trzeba mieć naprawdę dużo złej woli, żeby do takich wniosków dojść. Przykro mi, że wciskasz mi w usta słowa, których nigdy nie wypowiedziałem. Jednocześnie opatrzyłeś mnie bardzo miłym epitetem w postaci małostkowego idioty Tu trochę chyba się zapominałeś... Niemniej jednak, wszystko co napisałeś, w połączeniu z twoim oświadczeniem o rezygnacji udziału w polskim forum, trzeba nazwać niczym innym, jak tylko dziecinnym, szczeniackim zachowaniem: "Obraziłem się, zabieram swoje zabawki i idę do innej piaskownicy..."
PS. O ile dobrze pamiętam nie pierwszy już raz :-/
Nixer napisał(a):
Originally posted by Gargamel Plaga jakaś? Najpierw Ryszard, teraz Moose...
Hę? Ryszard? Czy ja coś przegapiłem?
quiris napisał(a):
I tak generuje id dopiero po otwarciu calej strony, wiec dalej trzeba szukac obejscia, albo pogodzic sie z faktem, ze stronki beda dostosowywac sie po chwili.
Wydłubałem takie cuś (wersja obszerna/edukacyjna ). Ten skrypt wydaje się działać zgodnie z oczekiwaniami, czyli efekt blinkania stylów nie występuje (przetestowałem wszystkie strony dla których mam nałożone fixy z Graala).
//autorzy: wstawcie tu sobie to, co wam się żywnie podoba :)
function SygnaturaCSS() {
var semafor = false;
if (document.body) {
if (!document.body.hasAttribute('id')) {
document.body.setAttribute('id',location.host.replace(/^www\./,'').replace(/^\d/,'_$&').replace(/\./g,'-'));
}
semafor = true;
}
if (!semafor) {
setTimeout("SygnaturaCSS()",50);
}
}
SygnaturaCSS();
quiris napisał(a):
Skrypt dodający atrybut title do obrazków (dzięki czemu Opera wyświetla je w dymkach). Dodaje on te atrybuty tylko w przypadku, gdy w oryginalnym kodzie nie istnieje atrybut title dla danych obrazków oraz gdy istnieje atrybut alt, z którego pobierana jest zawartość title:
//autorzy: wstawcie tu sobie to, co wam się żywnie podoba ;)
// ************** generowanie title z alt dla obrazków *******
function generujTitleZAlt() {
var obrazki=document.getElementsByTagName('img');
for (var i=0; i < obrazki.length; i++) {
if (!obrazki[i].title && obrazki[i].alt) {
obrazki[i].setAttribute('title',obrazki[i].alt);
}
}
}
document.addEventListener('load', generujTitleZAlt, false);
Ten skrypt wydaje się działać zgodnie z oczekiwaniami, czyli efekt blinkania stylów nie występuje
A jednak udało mi się znaleźć stronę, gdzie efekt migania styli występuje i co ciekawsze występuje również z wykorzystaniem Graala. Ta strona to www.gentoo.org Udało mi się wstępnie ustalić, że nieobecność jakiegokolwiek znacznika <script> na tej stronie odpowiada za ten efekt. Gdy dodałem do kodu pusty nawet skrypt, migania nie zauważyłem. Hmm... Dziwne.
quiris napisał(a):
O ile dobrze pamiętam, to nie był tu zamieszczany skrypt usuwający atrybut _blank w wersji przeznaczonej do User Javascript. Oto on:
// ************ usuwanie atrybutów _blank **********************
function usunAtrybutyBlank () {
var odnosniki = document.getElementsByTagName('a');
for (var i = 0; i < odnosniki.length; i++) {
if (odnosniki[i].getAttribute('target') == '_blank') {
odnosniki[i].removeAttribute('target');
}
}
}
document.addEventListener('load', usunAtrybutyBlank, false);
adas napisał(a):
Starałem się coś kombinować z otwieraniem okna pisania mejla po klinięciu linka z mailto: od razu w Gmailu. Ale jakoś marnie mi poszło.
Jedyny problem jaki tu widzę to fakt, że Opera nie obsłguje XPath. W chwili wolnej spróbuję go zastapić przez NodeIterator i wyrażenie regularne.
quiris napisał(a):
Coś dla wielbicieli era.pl (przy okazji inna strona, która snifuje tylko Operę 7)
// ***************** obejście do menu na era.pl oraz maximum.pl *********
function UaOstrzegawczy() {
navigator.userAgent='Opera/8.0 (Windows NT 5.2; U; en) poprawcie skrypt z menu opera/7.';
}
var Qdomena = document.location.host.replace(/^www\./,'');
if (Qdomena == 'era.pl' || Qdomena == 'maximum.pl') UaOstrzegawczy();
ech, ten pierwszy kwietnia... :-)
TomekQ napisał(a):
Re: Re: Pelne Sygnatury i Turboskrypt Uzytkownika
Originally posted by Sentinel ech, ten pierwszy kwietnia...
wlacz "user mode" i nie ma problemu
Sentinel napisał(a):
no tak - coś przewrażliwiony dziś jestem na tym punkcie. ;-)
quiris napisał(a):
Dobra. Miałem poprawiać, ale to co wykonałem sprawuje się poprawnie i nie chce mi się optymalizować
Skrypt (w załączeniu) dodający do pól textarea na forum możliwość wstawiania BB kodów za pomocą skrótów klawiaturowych:
Opis skrótów. Skróty są tworzone za pomocą tzw. accesskeys. W Operze domyślnie ustawiony jest skrót shift + esc jako uaktywniający accesskeys. Nie jest to najwygodniejsze rozwiązanie. Sugeruję zmianę na np. klawisz Insert. Po zmianie możliwe jest przy pomocy:
Ins -> w - kopiowanie i wstawianie jako [quote] zaznaczonego fragmentu tekstu na stronie
Ins -> q - zaznaczony fragment w polu tekstowy obejmuje [quote]
Ins -> b - zaznaczony fragment w polu tekstowy obejmuje [b]
Ins -> i - zaznaczony fragment w polu tekstowy obejmuje [i]
Ins -> u - zaznaczony fragment w polu tekstowy obejmuje [u]
Ins -> a - zaznaczony fragment w polu tekstowy obejmuje [url]
Ins -> c - zaznaczony fragment w polu tekstowy obejmuje [code]
Ins -> p - zaznaczony fragment w polu tekstowy obejmuje [php]
Ins -> l - zaznaczony fragment w polu tekstowy obejmuje (jeżeli jest to tekst oddzielony kolejnymi enterami to tworzona jest cała lista [list][*][/list]
Ins -> literka oznacza, że najpierw naciskamy Ins i puszczamy, a potem odpowiednią literkę
..dałoby się zmajstrować skrypt który wyświetlałby poprawnie okienka w js na http://www.livescore.com/ ? strasznie mnie to irytuje, za każdym razem po otwarciu takiego okna musze je sobie sam rozszerzać
może skrypcik który wyłączałby oryginalne js i zastępował js o okreslonej i stałej szerokości okna (no bo wysokość musi się zmieniać w zalezności od wyniku)?
zgłaszałem dwa razy (bump) ale widać mają ważniejsze sprawy na głowie
Mayor napisał(a):
KAPITALNIE!!
dzięki diz
co prawda widać przez moment po kliknięciu na link jak okienko ładuje się z paskiem przewijania ale ułamek sekundy później znika; nie zauważyłem skutków ubocznych nawet przy nie zmaksymalizowanej stronie głównej (a teoretycznie powinno ją zwężyć do 400 pix?) z tym że faktycznie zawsze mam zmaksymalizowane strony więc mnie to nie dotyczy
PS. a da się sterować położeniem okienka? np. żeby je wyposrodkować jak na obrazku (teraz wyskakuje wyrównane do lewej), (btw. pięć czerwonych kartek, heh)
Originally posted by Mayor PS. a da się sterować położeniem okienka? np. żeby je wyposrodkować jak na obrazku (teraz wyskakuje wyrównane do lewej), (btw. pięć czerwonych kartek, heh)
dodaj jeszcze linijkę self.moveTo(x,y) Musisz mieć do tego zaznaczoną odpowiednią opcję w preferencjach (allow moving of windows) spać.
Mayor napisał(a):
działa
zrezygnowałem z wypośrodkowywania na rzecz umieszczenia go w lewym górnym roku (self.moveTo(0,0)) jak to czyni IE, skoro założenie twórców było takie właśnie wyświetlanie okienka to niech i tak będzie (w sumie nawet lepiej bo nie zasłania innych wyników)
d.i.z. napisał(a):
zmieniłem skrypt, sprawdź teraz. Według mnie teraz jest już idealnie jeżeli chodzi o rozmiary okna.
teraz już naprawdę spać
Mayor napisał(a):
jeszcze lepiej, super dodałem do to wątku z bugiem, teraz niech sie wypchają ;P
quiris napisał(a):
edit: jeszcze zmiana tych grubych kresek na takie jak w ie.
Jeśli ktoś korzysta z sygnatur CSS może to bardziej elegancko załatwić wpisem:
PS. zamieniłem location na host i mamy dalsze oszczędności. Aha i jeśli ktoś ma powiększoną wielkość minimalną fontów to scroll pojawia się.
d.i.z. napisał(a):
Ok, poprawiłem jeszcze trochę, wykorzystałem idea quirisa chociaż nadal bez sygnatur css bo jeszcze się nie zdecydowałem żeby tego używać (jak nic się szczególnie nie zmieni w O8 final to zacznę )
Problem był jeszcze z tym, że jeżeli okienko było otwarte i kliknęliśmy na inne wyniki to otwierały się w tym starym popupie ale rozmiar pozostawał niezmieniony. To zmusiłem te popupy do samoczynnego zamykania po zgubieniu focusu (taki brzydki hack ).
btw. za wszelkę cenę trzeba unikać zmiany rozmiaru okna już po samym utworzeniu. Powoduje to dodanie scrollbarów nawet jeżeli zmienimy rozmiary na takie same jak były wcześniej. Nie wiem czy to jest bug opery czy zamierzone działanie.
d.i.z. napisał(a):
To nie było trudne (wersja 3) [PHP] // triggers only on popup windows named 'match_details' if (window.location.host.indexOf('livescore.') > -1 && window.name.indexOf('match_details') > -1) { opera.addEventListener('BeforeEventListener.load', function(evk){ head = document.getElementsByTagName("head")[0]; style = document.createElement("style"); style.setAttribute("type", 'text/css'); style.innerHTML = "td[width='400'] {padding: 0;}"; head.appendChild(style); self.moveTo(0,0);self.focus(); // close on loosing focus (because reused popups gets wrong size) document.getElementsByTagName("body")[0].onblur='self.close()'; // prevent default resizing (which causes scrollbar to appear) evk.preventDefault(); }, false); } [/PHP] Próbuje to to co prawda zmienić rozmiar każdej strony livescore (również np. głównej) ale jak masz zmaksymalizowaną to nic nie zauważysz to zdanie jest już nieaktulane
edit: jeszcze zmiana tych grubych kresek na takie jak w ie.
Mayor napisał(a):
to jest po prostu świetne, działa lepiej niż przewidział webmajster na livescore, thx
btw. o co chodzi z tym zmniejszaniem kodu js? im mniej tym wykonuje się szybciej?
andol napisał(a):
W najnowszych buildach pliki użytkownika można wybrać z poziomu interfejsu użytkownika, przy czym określamy nie plik, a katalog. Wszystkie pliki *.js znajdujące się w wybranym katalogu traktowane są jako pliki użytkownika. W odpowienim polu można również wpisać listę katalogów i plików (rozdzielonych przecinkami).
===plus 2, czyli trzy piątki po siódemce===
quiris napisał(a):
W odpowienim polu można również wpisać listę katalogów i plików (rozdzielonych przecinkami).
A będzie można zrobić sobie przycisk do szybkiego włączania i wyłączania wszystkich plików?
andol napisał(a):
Originally posted by quiris A będzie można zrobić sobie przycisk do szybkiego włączania i wyłączania wszystkich plików?
Nie wiem.
//ZMIANA
Nie w 8.0.
Mayor napisał(a):
Originally posted by quiris O ile dobrze pamiętam, to nie był tu zamieszczany skrypt usuwający atrybut _blank w wersji przeznaczonej do User Javascript. Oto on:
// ************ usuwanie atrybutów _blank **********************
function usunAtrybutyBlank () {
var odnosniki = document.getElementsByTagName('a');
for (var i = 0; i < odnosniki.length; i++) {
if (odnosniki.getAttribute('target') == '_blank') { odnosniki.removeAttribute('target'); } } }
quiris a dałoby się przerobić to tak żeby działało tylko dla plików a nie dla stron? ten skrypt działa zarówna dla stron które mają się otwierać nowej stronie jak i dla linków do plików które powodują otwarcie się nowego pustego taba (ze 100 razy na wishlist)
taki skrypt załatwiłby sprawe na dobre, przynajmniej do czasu kiedy to wreszcie poprawią
d.i.z. napisał(a):
Originally posted by Mayor quiris a dałoby się przerobić to tak żeby działało tylko dla plików a nie dla stron?
Ja się nudziłem [php] // ************ usuwanie atrybutów _blank [tylko dla plików] ************* function checkExt(url){var url=url.split('.');var ext=url[url.length-1].toLowerCase();return {zip:1,rar:1,tgz:1,tar:1,arj:1,gzip:1}[ext]} function usunAtrybutyBlankPlik () { var odnosniki = document.getElementsByTagName('a'); for (var i = 0; i < odnosniki.length; i++) { if (odnosniki.getAttribute('target') == '_blank' && checkExt(odnosniki.getAttribute('href'))) { odnosniki.removeAttribute('target'); odnosniki.style.cursor = 'pointer';
} } } document.addEventListener('load', usunAtrybutyBlankPlik, false); [/php] dodany kawałek kodu zapożyczony został z jakiegoś bookmarkleta coby się nie przemęczać
To czy dany link prowadzi do pliku skrypt wie na podstawie rozszerzenia. Można sobie dodać własne w wiadomym miejscu. Nie będzie to oczywiście działać dla plików, które są ściągane na podstawie zapytania do bazy, czyli np. coś w tym stylu http://www.download.com/?plik=1023 lub podobnym. Można sobie jeszcze zmieniś kursor na jakiś inny aby odróżniać zmienione ale chyba nie ma po co. (ja to dodałem bo u mnie coś się gryzło z user stylesheet i miałem zwykłą strzałkę bez rączki).
edit: mała poprawka żeby nie nadpisywał styli
edit2 : no i właśnie nie działa np. na tym forum jak są załączone pliki zip. Nie wiem czy da się to jakoś dostosować. Może da się sprawdzić jakieś atrybuty otwartego, pustego okna i wtedy próbować zamknąć na ich podstawie. Ale nie wiem jak tu jednoznacznie określić, które okno zostało otwarte przy ściąganiu pliku.Mayor napisał(a):
edit2 : no i właśnie nie działa np. na tym forum jak są załączone pliki zip. Nie wiem czy da się to jakoś dostosować. Może da się sprawdzić jakieś atrybuty otwartego, pustego okna i wtedy próbować zamknąć na ich podstawie. Ale nie wiem jak tu jednoznacznie określić, które okno zostało otwarte przy ściąganiu pliku.
hm no własnie, juz napisałem posta w tamtym ątku ale sprawdziłem jak działa i skasowałem bo faktycznie otwiera te puste okna
wersja quirisa działa jak należy ale właśnie też dla stron (powiem że mnie to nawet odpowiada, kwestia porzucenia przyzwyczajenia zamykania okna i robienia "wstecz" bo całe życie otwierało się w osobnych kartach) cały pic w tym zeby skrypt nie otwierał pustych okien, a normalne tak
d.i.z. napisał(a):
No niestety, jeżeli po adresie linku nie da się poznać czy prowadzi do pliku to skrypt jest bezsilny. A znowu w tych otwartych pustych oknach w ogóle nie startuje userjs, także ja się poddaje. Może ktoś inny wpadnie na jakiś genialny w swej prostocie pomysł
Mayor napisał(a):
Originally posted by d.i.z. No niestety, jeżeli po adresie linku nie da się poznać czy prowadzi do pliku to skrypt jest bezsilny. A znowu w tych otwartych pustych oknach w ogóle nie startuje userjs, także ja się poddaje. Może ktoś inny wpadnie na jakiś genialny w swej prostocie pomysł
tj. nie da się ich rozpoznać czy nie dałoby się ich zamknąć (po rozpoznaniu)?
bo zawsze można jakimś ifem sprawdzić czy na stronie występuje dowolny znak a jesli nie to ją zamknąć nie znam sie na js i tak sobie strzelam bo to by było chyba za proste
d.i.z. napisał(a):
Puste strony, które się otwierają przy ściąganiu pliku, nie startują skryptów zawartych w userjs. Także z tymi nic nie można zrobić, ani zamknąć ani nic.
Jedyne wyjście to zapobiegać otwieraniu ale tu znowu nie zawsze da się rozpoznać czy link prowadzi do pliku czy strony czy czego tam jeszcze.
strona cały czas się sama odświeża przez co nie da sie tego normalnie czytać, domyślam sie że to przez skopany js, można to jakoś naprawić? co ciekawe strona się odświeża za kazdym razem jak wchodzę na karte skąd strona wie że na nią patrze? OnMouseOver? nawet gdyby to klikam tylko czubek karty a nie obszar strony hmm a nawet nie musze klikać, wystrczy że użyje gestu albo klawiatury do mziany kart
nie potwierdzam
quiris napisał(a):
strona cały czas się sama odświeża przez co nie da sie tego normalnie czytać, domyślam sie że to przez skopany js, można to jakoś naprawić?
strona cały czas się sama odświeża przez co nie da sie tego normalnie czytać, domyślam sie że to przez skopany js, można to jakoś naprawić? co ciekawe strona się odświeża za kazdym razem jak wchodzę na karte skąd strona wie że na nią patrze? OnMouseOver? nawet gdyby to klikam tylko czubek karty a nie obszar strony hmm a nawet nie musze klikać, wystrczy że użyje gestu albo klawiatury do zmiany kart
TomekQ napisał(a):
Rzeczywiscie - akurat nie mam user.js wiec moze dlatego nie bylo tego efektu.
quiris napisał(a):
Originally posted by TomekQ Rzeczywiscie - akurat nie mam user.js wiec moze dlatego nie bylo tego efektu.
Nie widziałeś efektu, ponieważ efekt odświeżania strony występuje przy zmianie rozmiaru okna (zdarzenie resize (onresize)). Zmień rozmiar okna i zobacz, czy strona się nie odświeża. Nie wiem skąd pomysł Mayora, że tu może coś mieszać user.js
Mayor napisał(a):
to było tylko moje przypuszczenie, Watsonie skoro ja mam bug a on nie to trzeba sobie zadać pytanie czy mamy identyczne opery? ja mam user.js a on nie, ocho
teraz przypomnij sobie blog marcosa ktoś bez user.js wchodzi i opuszcza strone - ok a ktoś Z user.js wchodzi a po wyjściu wychodzi mu z procesów opera
teraz wiążąc oba fakty można wysunąć wniosek że to może znowu jest coś jednak z tym user.js? prawda?
PS. też nie widzicie żadnych avatarów ani emotów na forum czy tylko u mnie tak jest? obrazki na strona mam, na forum nie widze żadnych //edit a pod IE widze, heh, czas na restart
Originally posted by Mayor PS. też nie widzicie żadnych avatarów ani emotów na forum czy tylko u mnie tak jest? obrazki na strona mam, na forum nie widze żadnych
Originally posted by Mayor PS. też nie widzicie żadnych avatarów ani emotów na forum czy tylko u mnie tak jest?
Zapędziłeś się za bardzo wyłączając różne ocje w ustawieniach forum.
//edit a pod IE widze, heh, czas na restart
Bo pewnie się nie zalogowałeś.
Mayor napisał(a):
nic nie zmieniałem tam i zalogowany jestem tu i tu
//edit o już wiem co, miałem zaznaczone "ukrywaj obrazki nie bedące odnośnikami" w stylu użytkownika ale działał tez w stylu autorskim; swoją drogą normalnie nie wpływa na wyświetlanie ale "no flash" wymaga mieć zaznaczone "moj arkusz stylów" w obu trybach
quiris napisał(a):
teraz wiążąc oba fakty można wysunąć wniosek że to może znowu jest coś jednak z tym user.js?
Można wysnuć taki wniosek. Ale szybko można sprawdzić, czy jest prawdziwy. Zmieniasz nazwę pliku user.js, odświeżasz stronę i voila... na tej stronie już nie ma skryptów user.js.
PS. też nie widzicie żadnych avatarów ani emotów na forum czy tylko u mnie tak jest?
Widzę avatary. Może grzebałeś w opcjach i wyłączyłeś pokazywanie avatarów?
quiris napisał(a):
//edit o już wiem co, miałem zaznaczone "ukrywaj obrazki nie bedące odnośnikami" w stylu użytkownika ale działał tez w stylu autorskim
No właśnie. Zaczyna się objawiać zjawisko, którego się bałem. Użytkownicy będą wrzucać sobie różne fixy, potem zapomną, że coś tam wrzucili i będą zgłaszać problemy :-/ Ja również nieraz złapałem się na tym. Dlatego, zawsze jak mam podejrzenie błędu to wyłączam fixy CSS oraz user.js i sprawdzam, czy błąd dalej istnieje na danej stronie. Dlatego właśne tak bardzo potrzebuję przycisku, który szybko wyłączałby mi user.js. Obecnie najszybszym sposobem jest zmiana nazwy pliku
Mayor napisał(a):
Originally posted by quiris No właśnie. Zaczyna się objawiać zjawisko, którego się bałem. Użytkownicy będą wrzucać sobie różne fixy, potem zapomną, że coś tam wrzucili i będą zgłaszać problemy :-/ Ja również nieraz złapałem się na tym. Dlatego, zawsze jak mam podejrzenie błędu to wyłączam fixy CSS oraz user.js i sprawdzam, czy błąd dalej istnieje na danej stronie. Dlatego właśne tak bardzo potrzebuję przycisku, który szybko wyłączałby mi user.js. Obecnie najszybszym sposobem jest zmiana nazwy pliku
a wyłączenie js nie wystarcza? w ósemce nie trzeba nawet odświeżać strony
btw. ja bym bardziej obawiał się "syndromu mirandy", czyli konfliktu sukcesywnie dodawanych fixów w user.js jako że kazdy ma inne mogą sobie zacząć wchodzić w paradę a po pewnym czasie gdy już plik urośnie trudniej będzie znaleźć co z czym powoduje konflikt
/dopisek hmm tak sobie czytam Twój post i w zasadzie to samo napisałeś ale zawsze troche inaczej
quiris napisał(a):
a wyłączenie js nie wystarcza?
Przecież JS jest mi zwykle potrzebne.
TomekQ napisał(a):
Originally posted by quiris Dlatego właśne tak bardzo potrzebuję przycisku, który szybko wyłączałby mi user.js. Obecnie najszybszym sposobem jest zmiana nazwy pliku
tak, to jest najszybszy sposob, ale mozesz sobie zrobic przycisk, ktory by za to odpowiadal - koncepcje uwzgledniajaca przelaczanie kilku wersji user.js podalem tutajMayor napisał(a):
można by wogóle napisac programik który zmieniałby nazwy (albo rozszerzenia) 3-ech plików których nie da się włączać/wyłączać z poziomu opery i podczepić to np. pod nieco rozszerzone F12
Tak. Zrobiłem cos takiego przy pomocy plików bat, ale nieszczególnie jestem zadowolony.
Mayor napisał(a):
btw. jakie są szanse na to ze user.js, ua.ini i filter.ini przestaną być tajnymi opcjami niedostepnymi dla zwykłego użytkownika który nie odwiedza forum opery na którym znalazłby info gdzie i co dopisac żeby je uaktywnić:confused:
tj. czy w final'u będą one dostepne normalnie z opcji? tamto menu F12 jest najbardziej serio - przecież te opcje pozwalają m.in. na poprawne wyświetlanie stron
TomekQ napisał(a):
Nie sadze, zeby Opera zdecydowala sie na taki krok. ua.ini ma chyba w zamierzeniach byc ustawiane przez mechanizm automatycznej aktualizacji, w dodatku nie widze potrzeby wlaczania/wylaczania go podczas dzialania Opery. Moze przydalaby sie mozliwosc aktualizacji "w locie", ale to juz inna historia (przecietny uzytkownik i tak nie bedzie samodzielnie przerabial ua.ini). user.js juz mozna miec w menu (sposob brzydki, ale dzialajacy), a kazde udogodnienie w jego uzywaniu moze sprawic, ze przecietny uzytkownik bedzie instalowal skrypty z niepewnych stron. Choc uwazam, ze potrzebne sa poprawki dotyczace ua.ini. Filter.ini - nie widze wad, ale wydaje mi sie, ze przestal dzialac w ostatnich Operach (chyba widzialem taki watek, ale nie wiem na 100%).
[OT co] co wyłaczasz przez "Annoyances" ? [wkurzajki]?
TomekQ napisał(a):
Flash, marquee, blinking itd. nieco przerobiona wersja tego co znalazlem na forum i fragmentu CSS ze strony Moose'a:) Teraz zastanawiam sie nad dodaniem jakiegos kombo przelacznika CSS do glownej czesci menu:)
andyas napisał(a):
A moglibyście udostępnić swoje menu.ini?
TomekQ napisał(a):
Menu Mayora bylo chyba raczej z zakresu wishlist;), ale ja swoim chetnie sie podziele. Powstalo specjalnie zeby moja Opera mogla tak wygladac i miec pelna funkcjonalnosc. Czesc poprawek powstala w odpowiedzi na chwilowe zapotrzebowanie (np. stare preferencje w Add-ons;)), wiec zapewne bedziesz musial je znacznie przerobic;). Dwie uwagi: - to jest przerobione zwykle standard_menu.ini i nie chcialo mi sie sprzatac zawartosci ponizej przerabianych fragmentow - nie wiem jakie zmiany wprowadzi wersja stabilna, ale czesc menu moze byc wybrakowana. - trzeba zwrocic uwage zeby CSS byly dobrze ustawione (u mnie to 11 i 14).
A działa wam jakiś kod JS do ustawiania sygnatury dla body w 8.00 final? Bo mi ani od quirisa, ani od Rijka nie działa... inne skrypty działają... Hmm... A może coś źle robię... Wrzucam do pliku identyfikator.js takie coś:
function bodyIDforAll() {
if(document.body){
var
b=document.body;
if(!b.hasAttribute('id'))
b.setAttribute('id',location.host
.replace(/^www\./,'')
.replace(/^\d/,'_$&')
.replace(/\./g,'-'));
// debug: uncomment the next line to see the body-IDs (this gets old really fast)
alert(document.body.id);
}
}
W preferencjach mam ustawiony katalog z JS (działa bo _blanki mi wywala i forum działa lepiej), ale sygnatury nie dodaje...
A mam już fajny styl dla google z krokusami i działa, ale sygnatury nie działają... i nie mogę się nim pochwalić...
sidtherat napisał(a):
działa mi mooseRootsSignature - dzięki czemu działają mi css'y dla poszczególnych stron
Chyba zepsułem javascripta przy okazji dodawania nowych wpisów w user.js, w sobote mi działało Google sugest, a wczoraj już nie, wszystko na oko mam prawidłowo ustawione zgodnie z
ale z moimi zdolnościami to nigdy nic nie wiadomo. Więc tak: Java script -> Włączony Katalog ze skryptami -> utworzony i ustawiony script z googlesugest -> wstawiony do katalogu userJS w opera6.ini mam wpisy:
User JavaScript=1 User JavaScript File=C:\Program Files\Opera8\profile\userJS
próbowałem też z
User JavaScript File=C:\Program Files\Opera8\profile\userJS\user.js
i cholera nie działa, a działało, czy ja coś pominąłem? W jakim kodowaniu to powinno być zapisane?
Edit. Na życzenie adas'a poprawiłem błąd ortograficzny w wyrazie utworzony.
adas napisał(a):
Originally posted by samm_ur Chyba zepsułem javascripta przy okazji dodawania nowych wpisów w user.js, w sobote mi działało Google sugest, a wczoraj już nie, wszystko na oko mam prawidłowo ustawione zgodnie z
ale z moimi zdolnościami to nigdy nic nie wiadomo. Więc tak: Java script -> Włączony Katalog ze skryptami -> utwożony i ustawiony script z googlesugest -> wstawiony do katalogu userJS w opera6.ini mam wpisy:
User JavaScript=1 User JavaScript File=C:\Program Files\Opera8\profile\userJS
próbowałem też z
User JavaScript File=C:\Program Files\Opera8\profile\userJS\user.js
i cholera nie działa, a działało, czy ja coś pominąłem? W jakim kodowaniu to powinno być zapisane?
A spróbuj teraz przeczytać początek wpisu na nontroppo. Uaktualniłem go jakiś czas temu (chyba w niedzielę). I poustwiaj od początku.
Kodowanie chyba nie ma znaczenia - w kodzie JS nie masz polskich znaków.
p.s. samm_ur przepraszam ale robisz za przykład... Mam nadzieję, że wybaczysz...
samm_ur napisał(a):
Opis UserJS na nontroppo to znam już na pamięć, ale i tak zrobiłem wszystko od nowa, pokasowałem pliki *.js razem z katalogiem skasowałem też ścieżkę dostępu w preferencjach no i oczywiście zamknąłem operke. Potem tworzę katalog userJS i umieszczam w nim user.js z wpisem skopiowanym z nontroppo. Uruchamiam operę w preferencjach podaję ścieżkę dostępu do katalogu i OK OK. Na wszelki wypadek restart opery i sprawdzenie czy w opera6.ini są odpowiednie wpisy, okazuje się że są, więc zapalam googlarkę i [---] - googlesugest nie działa Powtórzę jeszcze raz że w sobotę działało na 100%.
@adas czy przypadkiem nie zmieniłeś kodu js?
Ps. nie zapomnij sprawdzić czy nie zrobiłem jakiegoś błędu ortograficznego, wszak bardzo się starałem, ale głowy nie dam...
cóż, jestem kiepski z angielskiego moze ktos podjalby sie przetlumaczenia dla biednych, malych, polskich owieczek
samm_ur napisał(a):
samm_ur napisał(a) zapalam googlarkę i [---] - googlesugest nie działa
Nie uwierzycie, po restarcie kompa GoogleSugest zaczęło działać dziś rano zapuszczam a tu niespodzianka! Normalnie archiwum X. wickoo napisał(a):
podpowiedzi wyswietlaja sie z opoznieniem moze nie zauwazyles albo cos :>
samm_ur napisał(a):
Archiwum X ciąg dalszy...
Problem z javascript nadal występuje. Po odpaleniu Operki wchodzę na stronę google.pl i googlesugest działa (załączyłem screena) ale wystarczy że otworzę jakąś stronę z zakładek albo skożystam z paska szybkiego wyszukiwania google to js przestaje działać.
Aby wznowić działanie js muszę wyczyścić Cache Opery i ją zrestartować. Czy ktoś już widział takie skecze?
Edit. Restart nie jest konieczny aby wznowić działanie js wystarczy wyczyścić cache
Nie archiwum, nie archiwum, tylko pewnie nie masz włączonej obsługi funkcji głosowychsamm_ur napisał(a):
Zgadza się, nie jestem aż tak szalony żeby gadać z przeglądarką
A tak na serio to nie mam mikrofonu ani nie ściągałem plugina do obsługi Voice'a, to zdaje się coś koło 10MB. Myślisz że to przez to? Co ma piernik do wiatraka???
quiris napisał(a):
Myślisz że to przez to?
Nie wiem, czy akurat w tej sprawie to jest to, ale jest to bardzo prawdopodobne.
Co ma piernik do wiatraka???
Akurat Voice browsing ma dużo do gadania w kwestii user js. Dla dociekliwych: odpowiedź znajduje się na forum, ale w innym dziale
wickoo napisał(a):
przemysli to ktoś? to jest mozliwe?
a co byście powiedzieli na Automatyczne kopiowanie zaznaczonego tekstu? ( autocopy z ff )
zaznaczony tekst kopiowalby sie do schowka, a po skopiowaniu automatycznie usuwaloby sie zaznaczenie
dzisiaj uczylem sie js wiec jeszcze nie bardzo rozumiem i dlatego was o to proszę
d.i.z. napisał(a):
Opera chyba nie ma żadnej funkcji, która pozwoliła by na ustawienie zawartości schowka. Pewnie ze względów bezpieczeństwa.
Mayor napisał(a):
imho bez sensu bo co jesli skopiuję sobie w formularzu (np. odpowiadając na posta) jakiś fragment tekstu (mam go w schowku) a potem zaznacze jakiś inny fragment tekstu celem usunięcia go i wklejanie uprzednio skopiowanego? gdyby zadziałało to autocopy to usunąłbym i znowu wkleił to samo
z kolei jeśli miałoby to działać tylko na stronie to też nie halo (przynajmniej dla mnie) bo często jak jest duzo tekstu zlewającego sie w jeden, zaznaczam go sobie myszą przez co czytam fragmentami; w schowku mogę mieć jakiegoś linka czy cokolwiek co bede mógł chcieć wkleić później
Nixer napisał(a):
Postanowiłem wreszcie wypróbować te wszystkie nowinki, bo jeszcze się UserJavascript nie zajmowałem wcześniej. Bardzo fajny jest skrypt usuwający target="_blank". Tylko jedna rzecz mi się nie podoba: na takim linku mam zwykłą strzałkę a nie łapę wskazującą na link. Da się włożyć cursor:pointer do tego skryptu?
samm_ur napisał(a):
Nixer możesz jeszcze napisać czy masz włączonego voice'a pozostali którzy bawią się js też niech dadzą cynk czy komuś działa js bez włączonego voice'a i bez plugina do niego. Z góry dzięki.
wickoo napisał(a):
Originally posted by Mayor imho bez sensu bo co jesli skopiuję sobie w formularzu (np. odpowiadając na posta) jakiś fragment tekstu (mam go w schowku) a potem zaznacze jakiś inny fragment tekstu celem usunięcia go i wklejanie uprzednio skopiowanego? gdyby zadziałało to autocopy to usunąłbym i znowu wkleił to samo
z kolei jeśli miałoby to działać tylko na stronie to też nie halo (przynajmniej dla mnie) bo często jak jest duzo tekstu zlewającego sie w jeden, zaznaczam go sobie myszą przez co czytam fragmentami; w schowku mogę mieć jakiegoś linka czy cokolwiek co bede mógł chcieć wkleić później
dlatego to jest UserJS - instaluejsz tylko to, co chcesz.. w ff jest tak, że to działa tylko na stronie ( można wyłączyć formularze ) a u nas po prostu nie łapałoby formularzy. a przyzwyczajenia zawsze można zmienić Ja takich nie mam wiec nie byloby problemu :]
Nixer napisał(a):
Originally posted by samm_ur Nixer możesz jeszcze napisać czy masz włączonego voice'a pozostali którzy bawią się js też niech dadzą cynk czy komuś działa js bez włączonego voice'a i bez plugina do niego. Z góry dzięki.
Nie mam włączonego voice'a.
d.i.z. napisał(a):
Originally posted by Nixer Postanowiłem wreszcie wypróbować te wszystkie nowinki, bo jeszcze się UserJavascript nie zajmowałem wcześniej. Bardzo fajny jest skrypt usuwający target="_blank". Tylko jedna rzecz mi się nie podoba: na takim linku mam zwykłą strzałkę a nie łapę wskazującą na link. Da się włożyć cursor:pointer do tego skryptu?
Originally posted by quiris Akurat Voice browsing ma dużo do gadania w kwestii user js. Dla dociekliwych: odpowiedź znajduje się na forum, ale w innym dziale
P.S. Mam dziwne wrazenie, ze generator sygnatur w postaci user.js sprawia, ze polskie forum mirandy nie chce sie ladowac, czy ktos moze to potwierdzic/zaprzeczyc?
quiris napisał(a):
Zreszta jestem pewny, ze wspomniany przeze mnie hack do acid2 dzialal przy pierwszej probie, a dzwieku na pewno nie instalowalem.
Skoro śledziłeś dyskusje, to zapewne wiesz, że mimo wyłączonego Voice browsingu można zrobić tak, żeby skrypty na danej stronie bez znacznika <script> działały. I ta zasada *dotyczy* *również* strony http://www.webstandards.org/act/acid2/test.htmlquiris napisał(a):
P.S. Mam dziwne wrazenie, ze generator sygnatur w postaci user.js sprawia, ze polskie forum mirandy nie chce sie ladowac, czy ktos moze to potwierdzic/zaprzeczyc?
Przy próbie załadowania strony wyskakuje pytanie o hasło.
TomekQ napisał(a):
Originally posted by quiris Skoro śledziłeś dyskusje, to zapewne wiesz, że mimo wyłączonego Voice browsingu można zrobić tak, żeby skrypty na danej stronie bez znacznika <script> działały. I ta zasada *dotyczy* *również* strony http://www.webstandards.org/act/acid2/test.html
(Musze zanotowac, zeby unikac skrotow myslowych;), szczegolnie w nocy;)). Jak wspomnialem rozwiazania z tamtego watku nie testowalem. Natomiast sztuczka z acid dzialala tylko przy kilku pierwszych probach, a pozniej niestety przestala:(. Dlatego wydaje mi sie, ze jakies inne czynniki tez wplywaja na aktywowanie user.js.
Originally posted by quiris Przy próbie załadowania strony wyskakuje pytanie o hasło.
Czyli istnieja strony, ktore dziwnie zachowuja sie pod wplywem user.js:(, teraz pozostaje znalezc przyczyne;).
P.S. Wyszla nowa wersja UltimateHighlightBookmarklet - teraz zsynchronizowana z Operowym wyszukiwaniem, niestety jeszcze nie udalo mi sie jej uruchomic, ale wierze, ze jestem na dobrej drodze;). EDIT: zadzialalo - przycisk chyba musi byc na tym samym pasku co pole do wyszukiwania:)
wickoo napisał(a):
a mi się nic nie dzieje wszystko jest ok i nie mam voica
quiris napisał(a):
Natomiast sztuczka z acid dzialala tylko przy kilku pierwszych probach, a pozniej niestety przestala. Dlatego wydaje mi sie, ze jakies inne czynniki tez wplywaja na aktywowanie user.js.
Tak. Inne czynniki zostały opisane właśnie w tamtym wątku i właśnie o tych czynnikach pisałem.
Czyli istnieja strony, ktore dziwnie zachowuja sie pod wplywem user.js, teraz pozostaje znalezc przyczyne
Tu nie ma nic do rzeczy user.js, po prostu strona nie jest obecnie dostępna. Takie samo pytanie dostaję zarówno pod Operą, jaki i Firefoksem, czy MSIE.
TomekQ napisał(a):
Originally posted by quiris Tak. Inne czynniki zostały opisane właśnie w tamtym wątku i właśnie o tych czynnikach pisałem.
Czytanie ze zrozumieniem tez musze pocwiczyc;)
Tu nie ma nic do rzeczy user.js, po prostu strona nie jest obecnie dostępna. Takie samo pytanie dostaję zarówno pod Operą, jaki i Firefoksem, czy MSIE.
I znowu moja wina - u mnie strona laduje sie po calkowitym wylaczeniu javascriptu, wiec uznalem ze jest to wina generatora sygnatur swiezo przeniesionego z CSS.
wickoo napisał(a):
gdybym tylko dostał jasny spis elementów bo na stronei opery to nie moge sie polapac
samm_ur napisał(a):
Archiwum X odcinek 3
JavaScript jako taki działa tzn udało mi się odpalić Ultimate Highlight Bookmarklet (z tym skryptem wszystko jast Tip Top) działa również wyłączenie target=_blank tyle, że po uruchomieniu trzeba zrestartować Operę, natomiast nie mogę poradzić sobie z Identyfikatorem CSS dla różnych stron, nie wiem czy problem jest w skrypcie sygnatura.js czy w w user.css w którym mam styl opracowany przez Moos'a i troche zmieniony przez sidtherat'a dotyczący wyglądu googlarki. Podejżewam raczej styl bo przed chwilą udało mi się podmontować styl krokusowy opracowany przez adas'a i wygląda na to że działa.
W związku z tym mam pytanie czy styl moose'a wystarczy podłączyć do user.css czy wymaga to dodatkowych zabiegów
A co do googlesugest to jeżeli strona google jest ściągana z sieci to sugestie działają a jeżeli zaraz obok otworzę drugą stronę z google to jest ona ładowana z keszu i wtedy sugestie nie działają, chyba ten typ tak ma bo już nic innego nie wymyśle.
W załączniku jest wspomniany styl moose'a zmodowany przez sidtherat'a, gdyby ktoś chciał rzucić okiem
No i ciebie objawiła się różnica w skryptach. Moose promuje html.moose.google a na polskim wiki mamy #google-pl
Czyli w pliku css zamień html.moose.google na #google-com. Chyba o to chodzi.
A ktoś wie, który sposób dodawania sygnatur jest wygodniejszy (lepszy)?
quiris napisał(a):
A ktoś wie, który sposób dodawania sygnatur jest wygodniejszy (lepszy)?
Ja osobiście używam klasycznej metody, czyli identyfikatorów np. #google-pl generowanych dla body. Moose korzysta z generowanych class dla elementu html, co zauważyłem powoduje sporo problemów w Operze. Sygnatury dla elementu html nie zawsze chciały się generować. Poza tym z klasami, które swoje zalety praktycznie są istotne dla rodzin stron, czyli np. rodzina stron Google, trzeba jednak uważać, bo pole do pomyłek jest zdecydowanie większe. Niedoświadczony użytkownik, który nie zna dobrze CSS może łatwo stać się ofiarą błędnie skonstruowanych definicji stylów, które niezamierzenie zaczną działać na stronach, na których działać nie powinny.
sidtherat napisał(a):
metoda moosa faktycznei ma wady - styl dla googlarki, który sam opracował kompletnie wywala gmaila, więc jeśli ktoś chce używać gmaila musi się z tym namęczyć [ja nie używam, ale sprawdziłem z ciekawości] to samo dotyczy stron gooogle jako stron [instrukcje, faq, materiały itp], które też są traktowane po łebkach - i są przez to nieczytelne
'user CSS' to bardzo potężne narzędzie, ale im dalej w las, tym bardziej widać, jak trudne jest używanie tego w 100% rozsądny sposób
sidtherat napisał(a):
już wiem jak naprawić userJS moose'a [a także, ten polski], żeby działał z gmailem
sprawa jest prosta i w sumie nie wiem skąd ten błąd się wziął oba skrypty mają w swojej składni coś takiego:
pytam się po co? po usunięciu tego przedrostka, wiele stron, które mają podstrony właśnie PRZED właściwą nazwą domeny [np. www.tweak.pl i forum.tweak.pl] będzie kolidować. Moose w stylu do googla wywalił wiele rzeczy korzystając z sekwencji html.moose.google cośtam {display: none} - niby pięknie, ale to zabija też 'cośtam' na gmail.google.. chyba, że ktoś to ręcznie 'ożywi' - pytanie po co tak mkomplikować, życie, jeśli można wpisać
html.moose.www.google - wtedy gmail jest bezpieczny
zdaję sobię sprawę, że ten problem mógł być dyskutowany wcześniej, i takie rozwiązanie przyjęto jako jakiś kompromis, ja jednak nie dostrzegam jego wad [poza koniecznością wpisania www]
ps. nowego posta dodałem, żeby wyciągnąć to troszkę na wierzch i pobudzić dyskusję ps2. nadal nie wiem jak zrobić, żeby bez wyłączania jego stylu oglądać strony googla [faq itp]
edit: ok, połowicznym sukcesem jest wpisanie html.mooose.www.google.com dla wyników..
pytam się po co? po usunięciu tego przedrostka, wiele stron, które mają podstrony właśnie PRZED właściwą nazwą domeny [np. www.tweak.pl i forum.tweak.pl] będzie kolidować.
To wycinanie www jest tam wstawione z premedytacją. U mnie strony www.tweak.pl oraz tweak.pl dostają identyczny identyfikator #tweak-pl i jest to jak najbardziej pożądane i prawidłowe. Natomiast forum.tweak.pl u mnie dostaje inny identyfikator #forum-tweak-pl i to jest również prawidłowe i pożądane. Żadna kolizja w przypadku korzystania z identyfikatorów nie nastąpi. Natomiast jeśli zdecydowałeś się na korzystanie z klas to właśnie padłeś ich ofiarą. To jest ten przypadek o którym pisałem wyżej. Kolizja może nastąpić *jedynie* w przypadku korzystania z klas.
sidtherat napisał(a):
no to przerabiamy to wszystko... :/
ps. koszmarnie wolno teraz otwiera się gmail..po wyłączeniu tego skryptu od sygnatur wszystko wraca do normy. nie wiem co jest ps2. gmail sie NIE włącza
jednoznacznie moge stwierdzic, ze wina lezy po stronie skryptu do sygnatur - po wylaczeniu go gmail dziala, po wlaczeniu - nie...
moze i klasy sa be, ale dzialaja...
no i już zagadka wyjaśniona:
odpalanie tego skryptu jest błędne i koliduje z gmailowymi skryptami
zamiast SygnaturaCSS(); powinno być document.addEventListener('load',SygnaturaCSS,false);
edit. niewazne juz wiem czemu moose zrobil tak jak zrobil zostaje przy jego rozwiazaniu
Jakub81 napisał(a):
Originally posted by quiris To wycinanie www jest tam wstawione z premedytacją. U mnie strony www.tweak.pl oraz tweak.pl dostają identyczny identyfikator #tweak-pl i jest to jak najbardziej pożądane i prawidłowe. Natomiast forum.tweak.pl u mnie dostaje inny identyfikator #forum-tweak-pl i to jest również prawidłowe i pożądane. Żadna kolizja w przypadku korzystania z identyfikatorów nie nastąpi. Natomiast jeśli zdecydowałeś się na korzystanie z klas to właśnie padłeś ich ofiarą. To jest ten przypadek o którym pisałem wyżej. Kolizja może nastąpić *jedynie* w przypadku korzystania z klas.
Podaję generatora identyfikatorów dla elementu root (html);
// ************** Sygnatura dla element Root **********************
function SygnaturaCSSRoot() {
var Qdomena = document.location.host.replace(/^www\./,'');
var elementOperowany=document.documentElement;
var semafor = false;
if (elementOperowany) {
if (!elementOperowany.hasAttribute('id')) {
elementOperowany.setAttribute('id',Qdomena.replace(/^\d/,'_$&').replace(/\./g,'-'));
}
semafor = true;
}
if (!semafor) {
setTimeout("SygnaturaCSSRoot()",50);
}
}
SygnaturaCSSRoot();
quiris napisał(a):
ps. koszmarnie wolno teraz otwiera się gmail..po wyłączeniu tego skryptu od sygnatur wszystko wraca do normy. nie wiem co jest
Faktycznie. Spowalnia Gmaila.
zamiast SygnaturaCSS(); powinno być document.addEventListener('load',SygnaturaCSS,false);
To niestety też spowalnia Gmaila.
samm_ur napisał(a):
adas napisał(a) No i ciebie objawiła się różnica w skryptach. Moose promuje html.moose.google a na polskim wiki mamy #google-pl
Czyli w pliku css zamień html.moose.google na #google-com. Chyba o to chodzi.
Ten trick rzeczywiście rozwiązuje problem z Moose'owym stylem dla google.com, jak ktoś używa google.pl to analogicznie zamienia: html.moose.google na #google-pl i wszystko pięknie działa. Dopiero dziś przy edycji search.ini dotarło do mnie że google.com i google.pl to nie jest to samo. Ale ze mnie Einstain.
Dzięki wszystkim za pomoc.
sidtherat napisał(a):
To niestety też spowalnia Gmaila.
powrocilem do rozwiazania moosa [wystarczy wpisywac wsazsytkie klasy, a nie domyslnie tylko google i jest ta sama funkcjonalnosc] ale kiedy jeszcze walczylem z sygnaturami to to drugie rozwizanie sprawialo ze gmail sie WOGOLE odpalal, z sygnaturaCSS() stawał na 'loading' i tak sobie stał [10 minut mu dałem...]
Mayor napisał(a):
u mnie to samo. obrazek się załadował jak odpaliłem DOM Inspectora czyli jest skopane coś w wywołaniu javascriptu
quiris napisał(a):
Akurat Voice browsing ma dużo do gadania w kwestii user js.
Dla zainteresowanych, którzy życzą sobie ładowania przez Operę user js również dla stron, które nie mają w kodzie żadnych znaczników <script> informuję, że nie muszą już mieć włączonego Voice browsingu. Całą sprawę załatwia wpis w sekcji [User Prefs]:
Always Load User JavaScript=1
Myślałem, że powyższy wpis nie działa. Jednak na szczęście byłem w błędzie
Mayor napisał(a):
kiedyś się chyba o to samo pytałem i ponoć pomagało wyłaczenie czegoś ale teraz sprawdziłem i z wyłaczonym js czy wtyczkami jest to samo
d.i.z. napisał(a):
Originally posted by quiris Dla zainteresowanych, którzy życzą sobie ładowania przez Operę user js również dla stron, które nie mają w kodzie żadnych znaczników <script> informuję, że nie muszą już mieć włączonego Voice browsingu. Całą sprawę załatwia wpis w sekcji [User Prefs]:
Always Load User JavaScript=1
Ale dla https chyba dalej nie będzie działać?
edit: nie działa...
tockar napisał(a):
mam problem z naszym ukochanym gmail-em.
gdy w emailu jest wymieniony adres email, klikniecie w niego powinno wywolac male okienko z mozliwoscia napisania na ten adres. ale nie w Operze.
Gdy klikam to i owszem, wyskakuje okienko, laduje sie chwile, po czym nagle przestaje, a w zamian dostaje piekne okienko informacyjne zatytylowane Javascript z trescia: "Oops...the system was unable to perform your operation. Please try again in a few seconds."
Czy da sie poradzic z tym problemem przy pomocy skryptu uzytkownika? Wiem ze moge korzystac z gmail przez M2, ale akurat zalezy mi na tym zeby tego nie robic
Właśnie powstał skrypt umożliwiający autouzupełnianie formularzy, chyba informacje przechowywane są tylko dla danej domeny. Skrypt wymaga zapisywania ciasteczek.
Originally posted by TomekQ Powstaje baza user.js myślę, że skrypty z tego wątku mogłyby do niej trafić.
To miło Ale można jakoś poprosić o dodanie dodawanie opisów w innych językach niż angielski.
andyas napisał(a):
Jakiś link do tej strony na Opera Wiki by się przydał.
Jakub81 napisał(a):
To go dodaj.
MatiSz napisał(a):
JS i UserJS jednocześnie
Korzystam z skryptów użytkownika, głównie z sygnatur stron. Jednak gdy korzystam z UserJS, nie mogę jednocześnie korzystać ze zwykłego JS na stronach. Gdy podam błędny adres do pliku ze skryptami i odświerze stronę, wszystko jest ok.
Wy też tak macie? Czy ja mam wybrakowany egzemplarz?
BTW To było w 8.0, teraz, w 8.01 też tak jest..
Pozdrawiam, MatiSz
TomekQ napisał(a):
Twoj egzeplarz jest nadmiarowy. Nie generuje sygnatur, tylko klasy. A teraz porada tygodnia - poczytaj komentarze w tamtym pliku (zaczynają się od '//'), jeśli jeszcze nie będziesz wiedział, to przeczytaj tą stronę (sam znajdź interesujący fragment).
Nie radzę instalować skryptów js bez czytania.
MatiSz napisał(a):
Originally posted by TomekQ Twoj egzeplarz jest nadmiarowy. Nie generuje sygnatur, tylko klasy. A teraz porada tygodnia - poczytaj komentarze w tamtym pliku (zaczynają się od '//'), jeśli jeszcze nie będziesz wiedział, to przeczytaj tą stronę (sam znajdź interesujący fragment).
Nie radzę instalować skryptów js bez czytania.
Skąd wiesz, że mój egzemplarz jest nadmiarowy? I czego egzemplarz - skryptu, Opery?
Powyrzucałem poszczególne pliki jednocześnie sprawdzając czy działa i już wiem, który skrypt psuje normalny JS - sygnatury stron Moose'a. Faktycznie, generuje on klasy.. Używałem go wyłącznie do Google, więc nie będzie wielkiej straty..
Dzięki.
TomekQ napisał(a):
Originally posted by TomekQ A teraz porada tygodnia - poczytaj komentarze w tamtym pliku (zaczynają się od '//'), jeśli jeszcze nie będziesz wiedział, to przeczytaj tą stronę (sam znajdź interesujący fragment).
Czy ja wymagam tak wiele? trzy postyadas napisał(a):
odnosnie Userjs.org - czy ktos moglby zglosic propozycje aby pliki .userjs byly przez opere odslugiwane tak jak skiny, pobieralyby sie i sciagaly do folderu w ktorym przechowujemy userjs... byloby to chyba praktyczne, prawda?
TomekQ napisał(a):
Mayor zgłośił już coś takiego. Sam jestem przeciwny - wystarczy zerknąć na nasze forum, żeby zobaczyć, że część osób ściąga wszystko jak leci i nie wie co do czego służy. Dodając wpływ jednych skryptów na inne wychodzi ładny mętlik.
Mayor napisał(a):
no trudno żeby przez gości którzy nie umieją czytąc i ściągają wszystko co znajdną w necie pozbawiać się takich udogodnień ten sam mętlik masz jak klikniesz plik ini do menu Moose'a i nagle pojawi Ci się milion opcji więcej
wolna wola: można umieszczać pliki jako zwykłe linki a można jako linki "autoinstall" z opisem co to jest obok
quiris napisał(a):
ten sam mętlik masz jak klikniesz plik ini do menu Moose'a i nagle pojawi Ci się milion opcji więcej
Tyle, że instalowanie plików ini nie spowoduje zagrożenia twojej prywatności i bezpieczeństwa, a pliki user js mają taką możliwość.
TomekQ napisał(a):
Mam nadzieję, że nie podpada to pod atak osobisty, ale najlepiej pokazać problem na przykładzie.
Mayor: Zwracając uwagę na to kogo tutaj quiris oraz to co piszesz w innych miejscach mam poważne wątpliwości, czy jesteś kompetenty na tyle, żeby decydować, który skrypt jest 'bezpieczny' a który nie*. Ty spytasz się na forum, ale większość użytkowników uzna każdy problem spowodowany przez nietypowe user.js za błąd Opery. Ciągle też nie zauważyłeś, że skrypty mogą 'gryźć się ze sobą' - miałem dwa działające na linki i jeden blokował działanie drugiego. W przypadku łatwości ściągania nie będziesz nawet wiedział co może powodować konflikt. Chcesz zobaczyć przybliżony obraz skutków takiego rozwiązania? Zerknij na forum Mozilli - odpowiedzią na 1/3 pytań jest 'jakie masz rozszerzenia' (co swoją drogą dowodzi, że pytania są źle sformułowane;)). W przypadku Opery problem byłby jeszcze większy - rozszerzenia zostały stworzone do współdziałania z innymi (przynajmniej tak mówi teoria), działanie javascript opiera się po części na świadomości webmastera (to on miał odpowiadać za js strony).
* Ja też nie jestem, ale przynajmniej jestem tego świadomy
Mayor napisał(a):
mamy wstrzymywać rozwój programu z powodu głupoty jakiegoś procenta użytkowników który ściąga i uruchamia wszystko co znajdzie w necie a potem biadoli na forum? ściągając i klikając ten plik -> trojan.exe też spowodujesz narażenie Twojej prywatności i bezpieczeństwa
pewnie że zdaje sobie sprawe że wiele js mogą w końcu zacząć się gryźć ale to nie ma nic wspólnego z tym o czym pisałem na łiszliście; ja czy Ty i tak będziesz sobie wrzucał javascripty czy to do testów czy użytkowo i też bedziesz się z nimi użerał jak będą powodowały skutki uboczne; Rozchodzi mi się tylko o przyspieszenie procesu instalacji z
1. zapisz jako 2. zminimalizuj Opere 3. skopiuj ściągnięty plik z katalogu "Download" to katalogu "my javascript"
do 1. klikasz, po czym wyskakuje monit w stylu "Czy zastosować plik fix.js ?" i po kliknięciu "OK" ściąga się nie do Downloads a do folderu z javascripts
instalacje taką można by było w Preferencjach właczyc lub wyłaczyć (domyslnie wyłączona)
PS nie martw się trudno mnie obrazić pisząc na forum (to apropo tych ataków osobistych )
adas napisał(a):
Originally posted by Mayor Rozchodzi mi się tylko o przyspieszenie procesu instalacji z
1. zapisz jako 2. zminimalizuj Opere 3. skopiuj ściągnięty plik z katalogu "Download" to katalogu "my javascript"
A teraz przecież mamy: 1. kliknij w odnośnik 2. zapisz jako... w folderze UserJs
Mayor napisał(a):
Originally posted by adas A teraz przecież mamy: 1. kliknij w odnośnik 2. zapisz jako... w folderze UserJs
heh wiedziałem że ktoś to napisze
no więc faktycznie, gdyby była w Operze taka funkcja jak recent folders -> obrazek to byłoby to proste
ale teraz jest to zwyczajnie niewygodne bo wyglądało by to tak:
1. kliknij w odnośnik 2. zapisz jako 3. jestem w widoku folderu "Downloads" na dysku D 4. Do góry o jeden poziom (jestem w widoku dysku D) 5. Do góry o jeden poziom (jestem w widoku dysków C, D, E, Mój Komputer itp.) 6. dwuklik na C 7. dwuklik na Program Files 8. scroll down, scroll down, scroll down,..., aż zjade do folderów z Operą 9. dwuklik na Opera 8 10. dwuklik na profile 11. dwuklik na my javascript 12. Ufffff...
nie wspominając o tym że jak za chwilę będą chciał pobrać plik do innej lokacji to muszę stamtąd wyjść, a przy następnym pliku js znowu się naklikać żeby wejść
ja i tak zwyczajnie kopiuje plik na D a potem spod Total Commandera kopiuje gdzie trzeba bo tak mam szybciej niż opisany wyżej sposób, ale przydała by się malutka opcja która zaoszczędziła by tego czasu, tyle..
TomekQ napisał(a):
To ustaw Operę, żeby pliki z mime application/x-javascript i rozszerzeniem .js kopiowała do ustalonego folderu:). Albo zgłoś propozycję dodania innego application/user-js do tego, co wysyłają serwery z user.js (w zasadzie tylko http://userjs.org/). Jeśli ktoś będzie chciał to sam sobie doda do typów plików. Opcja w GUI jest zła.
Jakub81 napisał(a):
To ustaw Operę, żeby pliki z mime application/x-javascript i rozszerzeniem .js kopiowała do ustalonego folderu
To działa! No i już masz Mayor autoinstalację
Przydałby się jeszcze jakiś skrypt użytkownika dający okno potwierdzenia po kliknięciu linków do *.js, albo coś w tym stylu, bo można niechcący pobrać coś, czego się nie chce.
quiris napisał(a):
mamy wstrzymywać rozwój programu z powodu głupoty jakiegoś procenta użytkowników
Mayor to co napisałem to nie są moje prywatne odczucia, a opinia pracowowników Opery. Oni są świadomi tego, że istnieje niedogodność w instalowaniu user js, ale to jest zrobione specjalnie.
sidtherat napisał(a):
Pomysł z userJS jest wyśmienity, rozwiązuje/może rozwiązać wiele problemów, ale ma wadę, bardzo poważną - 80-99% userow NIE WIE jak dany plik działa, wie tylko jaki ma efekt końcowy. Pozornie taka wiedza powinna wystarczać do diagnostyki problemu, jednak praktyka pewnie powie co innego. Dochodzi do tego mnóstwo instalowanych samodzielnie łatek [głównie różne CSS] i dostaje się nie jeden produkt - Operę8 - tylko masę produktów - Opera8 by KtośTam. Jeśli zawiedzie autodiagnostyka nie będzie jak takiemu komuś pomóc. Poza wywal userJS, oczywiście.
Problem byłby mniejszy, gdyby wsystkie skrypty pisała jedna osoba [niewykonalne] lub ktoś je poprawiał i standaryzował. Bo w tej chwili już dwa skrypty operujące na drzewie DOM są ryzykowne a przecież może ich być więcej - a pozornie robią jakieś głupoty [ot, dodają title albo coś równie pozornie nieistotnego].
Z tego powodu osobiście jestem przeciw popularyzacji userJS. Jeśli ktoś znajdzie to sam, znaczy, że będzie w razie czego w stanie zrozumieć co, jak, dlaczego. Jeśli dostanie to na tacy, to tak jakby dostał granat bez zawleczki, ale z jeszcze wciśniętą łyżką. Zawodowcowi nic się nie stanie, amator się zabije.
Mayor napisał(a):
ponawiam pytanie co zrobić żeby powstrzymać stronę od automatycznego odświeżania?
jeszcze lepiej niż na stronie eurosportu widać to na przykładzie tej strony gdzie odświeża się co ok. 3 sekundy :/
[dot. drugiego przypadku, jesli strona jest we flashu to nic z tym nie zrobisz]
Mayor napisał(a):
lukałem w źródło żeby zobaczyć co powoduje to odświeżanie i też dostrzegłem to "refresh" dałem podgląd źródła, wywaliłem refresh, zapisałem dałem "Wczytaj z pamięci podręcznej" i działo sie tak samo... chociaż podejrzewam że po prostu w międzyczasie jak ja edytowałem źródło strona dalej się odświeżała i wczytała mi którąś z nastepnych wersji strony ignorując moje zmiany
ps. nie znam sie ja pisaniu w js dlatego ładnie prosze o napisanie
wickoo napisał(a):
ja JS znam, ale nie wiem jakie funkcje ma userjs opery dlatego bardzo prosze o napisanie jakiegos polskiego poradnika na OperaWiki
Zajec napisał(a):
wickoo napisał(a) nie wiem jakie funkcje ma userjs opery
Funkcje JavyScript. Całość można chyba nazwać imitowaniem występowania dowolnego skryptu JS na dowolnej stronie (lub wszystkich otwieranych).
d.i.z. napisał(a):
Lekarstwem na odświeżanie może być odznaczenie opcji 'Enable automatic redirection' w opcjach.
Ewentualnie naciśniecie obrazka ze znakiem pauzy. Ale to akurat na tej stronie
hmm.. a daloby sie zrobic js ktory po kliknieciu na adres do pliku js na userjs.org wyswietlalby monit 'czy zainstalowac userjs.js' a po kliknieciu na TAK kopiowalby plik do folderu z UserJS? :> zapisywanie na dysk chyba jest niewykonalne, nie? :/
TomekQ napisał(a):
Moim zdaniem jest to możliwe - wystarczy połączyć znane już rozwiązanie zapisywania plików .js na dysku ze skryptem, który pyta, czy przejść pod dany link (Zajec już taki napisał).
wickoo napisał(a):
mozna go pobrac?
TomekQ napisał(a):
Wszystko jest na tym forum. Posty Zająca są wartościowe, więc możesz je sobie i tak poczytać;) EDIT: może nieco przesadziłem - chodzi 'antytumiklikacza'
p.s. ciekawe kiedy to nowe forum się pojawi...
golly napisał(a):
Wrzucilem sobie skrypt Hide objects until double click (Flash block) i niechcacy kliknalem na baner. mam pytanko: Jak ukryc spowrotem jakis odblokowany baner? i drugie pytanko: czy da sie jakos ukryc te przestrzenie po banerach?
pozdro
daroc napisał(a):
Originally posted by golly Wrzucilem sobie skrypt Hide objects until double click (Flash block) i niechcacy kliknalem na baner. mam pytanko: Jak ukryc spowrotem jakis odblokowany baner? i drugie pytanko: czy da sie jakos ukryc te przestrzenie po banerach?
1. "Odśwież" albo "przeładuj". 2. Można np. stylami użytkownika, ale trzeba by to robić dla każdej strony osobno - trochę z tym zabawy. Ale jeśli bardzo zależy ci na jakiejś jedniej stronie, to możesz popróbować.
d.i.z. napisał(a):
Originally posted by d.i.z. Polecam mPUserJS.revStyle = 1;
gdzie to jest?
---2 update--- ok, i found it, inside this script, it's easy LOL
daroc napisał(a):
A co z wyświetlaniem wartości atrybutu HREF linków? Adres jest dla mnie dużo ważniejszy niż opisy w title, niemniej jednak chciałbym wyświetlać i href i title. Przy wyświetlaniu HREFu zauważyłem, że niemieszczące się w tym tooltipie adresy (sporo takich - adresy generowanych stron często są długie) powodują pojawienie się paska przewijania, zaś adres i tak jest ucinany w połowie. Spróbujcie najechać chociażby na znaczek « (te dwie "strzałeczki" w lewo) przy numerach stron na dole dokumentu - adres jest na tyle długi, że nie mieści się w tooltipie. (BTW - używam stylu forum: default i numerki stron na dole są po prawej.)
d.i.z. napisał(a):
Wyświetlanie linków autor tego skryptu ma dopiero w planach. I nie wiem tak na prawdę jak on chce to rozwiązać prawdę mówiać (pewnie małą czcionką ). Linki są faktycznie długie i może to nieciekawie wyglądać.W każdym razie oficjalnie to jeszcze do href'ów się nie nadaje
mleko napisał(a):
hmm ale mi oprocz tego ładnego dymka pojawia mi sie ten zolty z opery co jest standardowo:/
d.i.z. napisał(a):
Masz dwa wyjścia: 1. wyłączyć oryginalne tooltipy w opcjach. Dla mnie najlepsza opcja bo denerwują mnie adresy url podawane dla każdego linku a jak chce go zobaczyć to zawsze mam go w status barze. 2. ustawić w skrypcie mPUserJS.setAttNull = [false]; na mPUserJS.setAttNull = [true]; Wtedy atrybut title zostanie usunięty z kodu strony i Opera go nie pokaże.
mleko napisał(a):
1. a gdzie to mozna wylaczyc bo nie widze 2. jak to zrobie to czas loty floty w ogame sie pierniczy :/ ciagle pokazuje 0:00:00 natomiast jak jest jako [false] to jest dobrze:/
d.i.z. napisał(a):
1. Opcje/Zaawansowane/Przeglądanie (chyba, mam po angielsku). 2. Przy zmianie współrzędnych przy wysyłaniu floty? U mnie chyba dobrze. W każdym razie, standardowo opcja nie jest włączona i chyba nie bez powodu edit: a faktycznie, na stronie Podgląd. Nie używać w takim razie
mleko napisał(a):
ad1: wylaczylem w opcjach i zostawilem te z userjs na linkach nie mam tooltipow ale to nie problem bo przeciez od czego jest pasek stanu
dzieks
a mozna jakos zmienic styl tego tooltipa z tego userjs ?
daroc napisał(a):
Ustawianie kodowania znaków dla konkretnej domeny
W jaki sposób przy pomocy JavaScript ustawić kodowanie znaków dla konkretnej domeny? Dzisiaj zacząłem grać w OGame () i drażni mnie, że na niektórych podstronach nie ma ustalonego kodowania znaków i wyświetlają mi się krzaczki (domyślnie mam ustawione w Operze używanie Windows-1250, nie chcę tego zmieniać).
d.i.z. napisał(a):
Jest nowa wersja 1.8, która pokazuje atrybuty href (między innymi). Polecam rzucić okiem na stronkę demonstracyjną (przytrzymać alt i najechać na czerwone obrazki).
Istnieje jeszcze inny styl dla okienka. YellowBox. Tylko nie wiem czy autor go załączył do ostatniej wersji. Sprawdze jak to wygląda.
d.i.z. napisał(a):
Ten żółty styl nie jest dołączony do archiwum ale można go w miarę łatwo włączyć.
Do archwium dołączony jest plik user.css. Trzeba jego zawartość wkleić do pliku profile/styles/browser.css (jak nie ma to utworzyć). Dodatkowo na jego końcu wkleić jeszcze to:
A na koniec, przestawić w skrypcie mPUserJS.useDefStyle na false
Teraz restart przeglądarki i powinno już być ok.
edit: czemu ja napisałem o tym multipopupie w tym wątku? Może ktoś z adminów posprzątał by za mnie? adas napisał(a):
d.i.z.: połączyłem. Ale nie wiem czy wszystko
SpOOnman napisał(a):
Przeczytalem caly watek, ale nie znalazlem czego mi trzeba. Sam za slabo znam JS, a sprawa jest tak banalna, ze po 2 godzinach padlem i oddaje honor.
Czy moze mnie ktos poratowac prostym skryptem, ktory zamienia mi wszystkie wystapienia slowa Verdana (style, font-family, font-face itd.) na Trebuchet MS? Nie lubie Verdany i chce sie jej pozbyc raz na zawsze Probowalem cos w rodzaju document.replace(...), document.body.replace (...), document.body.text.replace (...) i tylko jakies bledy. Moze ktos mnie poratowac? Dzieki z gory
Mam pomysł na skrypt. Stronka http://www.good-tutorials.com/ otwiera tutoriale na stronie z ramkami. Górna ramka jest z reklamą i bezpośrednim linkiem do tutoriala. Trzeba by napisać skrypt, który odczyta ten adres i przekieruje nas na właściwą stronę. Ewentualnie zmieni górną ramkę na 0px wysokości.
daroc napisał(a):
Spróbuj tego:
if (location.href.indexOf('good-tutorials.com')!=-1) document.getElementsByTagName('frameset')[0].rows='0,*';
Nie sprawdzałem, ale powinno działać.
SpOOnman napisał(a):
A jak na stronie bedzie font-family:Verdana,Tahoma,Times New Roman,Arial to juz nie zamieni?
Poza tym pozostaja rzeczy w stylach, w CSSach, wiec pomyslalem, ze najlatiwej i najskuteczniej zamianiac slowo Verdana na Trebuchet w zrodle bezposrednio.
SpOOnman napisał(a):
Niestety, owiecc nie dziala, ale czuje, ze jest blisko... Moze jakies usprawnienie?
symeon napisał(a):
witam.
ma ktoś pomysł jak zlikwidować miejsce na reklame ( u mnie się rzadko wyświetla ), na tej stronie >>> http://di.com.pl/news/10236,0.html <<<. nie chodzi mi oczywiście tylko o tego news'a ale o wszystkie strony z kategori "newsy" z tego portalu.
pozdro
mleko napisał(a):
chodzi o ta reklame googla z prawej strony? jesli tak to wszystkie takie reklamy googla usuwa ten skrypt hide_google_adsense.user.js
Dlatego popełniłem dzisiaj kilka linijek : [PHP]if (document.location.href.indexOf('pl.wikipedia.org/wiki/Specjalna:Search') > -1) { var link = document.location.href; var szukaj = link.substr(link.indexOf('search=')+7, (link.indexOf('&go')- link.indexOf('search='))-7 ); window.location.href="http://en.wikipedia.org/wiki/" + szukaj; } [/PHP]
Całość opiera się na adresach, a nie na treści przez co być może kiedyś trzeba bedzie skrypt uaktualnić.
daroc napisał(a):
Mała modyfikacja w skrypcie removeblank.js, bo trafiłem na stronę, która miała wpisane _BLANK - wtedy skrypt nie blokował nowego okienka.
document.addEventListener('load',function(ev){
var d = document.getElementsByTagName('a');
for (var i = d.length-1; i > -1; i--) {
if (d[i].getAttribute('target').[b]toLowerCase()[/b] == "_blank") {
d[i].removeAttribute('target');
}
}
},false);
Multipopup nie wyświetla się na stronach Wikipedii. Tj. wyświetlać się wyświetla, ale jest przykrywane przez warstwę z tekstem.
Nixer napisał(a):
Na wielu innych tak jest. Zauważyłem to już jakiś czas temu, ale jakoś zawsze zapomniałem zaraportować.
daroc napisał(a):
Multipopup_userJS blokuje menu na stronie http://www.polishemb-trade.co.uk/pl. Tj. menu czasami na chwilę się pojawia, ale znika zaraz po pojawieniu się tipa. Po wyłączeniu multipopup-a wszystko jest OK. Co jest źle? Ew. jak to poprawić?
sudione napisał(a):
Witam!!! Ja mam pewnien problem ze skryptem o nazwie Dejavaskripter, ściągnąłem podobny o nazwie Popup Fixer i nie chcą mi te skrypty działać, między innymi na tej stronie http://icegirl.republika.pl/Galeria.html P.S. Czy Wam ten skrypt w ogóle działa ??? P.S.2 Jak zapisać ten skrypt ze strony nontroppo w postaci pliku .js ??? POZDRAWIAM SERDECZNIE i proszę o jakiekolwiek wskazówki.
PeterCub napisał(a):
Originally posted by RevPeter:
A ja mam problem z wyświetlaniem multipopup na stronie Deviantów. Szczegóły w załączeniu (podpowiedź specjalnie włączona dla pokazania różnicy).
UPDATE: Nowsza wesja naprawia ten problem. Poza tym, autor na bieżąco uaktualnia swój skrypt, więc bardzo możliwe, że w przyszłości wszelkie zauważone przez Was usterki zostaną naprawione. Pozdrawiam
Originally posted by daroc:
Multipopup nie wyświetla się na stronach Wikipedii. Tj. wyświetlać się wyświetla, ale jest przykrywane przez warstwę z tekstem.
Spróbuj pogrzebać w skrypcie, kierując się wskazówkami autora, powinna być opcja ustawienia przezroczystości. BTW, nie widzę problemu na stronie Wikipedii, tak właśnie dziala ten skrypt, chyba, że chodzi Ci o coś innego, wtedy podeprzyj to jakimś zrzutem.
symeon napisał(a):
dlaczego nie chce mi się wyświetlac wogóle Multipopup. Kombinuje już na różne sposoby i nijak nie daje rady. Inne *.js działaja poprawnie, a ten nie chce, jak na upartego. Wyjaśnijcie kroczek po kroczku jak to zrobic by było dobrze. Stosuje się do poleceń na domowej stronie ale nic to nie daje.
janbar napisał(a):
Originally posted by quiris:
O ile dobrze pamiętam, to nie był tu zamieszczany skrypt usuwający atrybut _blank w wersji przeznaczonej do User Javascript. Oto on:
// ************ usuwanie atrybutów _blank **********************
function usunAtrybutyBlank () {
var odnosniki = document.getElementsByTagName('a');
for (var i = 0; i < odnosniki.length; i++) {
if (odnosniki.getAttribute('target') == '_blank') { odnosniki.removeAttribute('target'); } } }
Po zainstalowaniu Proxomitrona przestał mi działać multipopup.js. Inne skrypty (link-alert, linkify) chodza jak dawniej. Winien temu jest jakiś filtr z najnowszej definicji, ale po godzinie sprawdzania nie wiem już - który. Jesli ktoś próbował rozwiązac ten "problem" prosiłbym o sugestię, jak to cofnąć (który filtr wyłączyć?).
P.S. Sorki jesli zły wątek, ale tu mi najlepiej pasował (stąd brałem skrypty).
woj-tek napisał(a):
Pomysł na skrypt: automatyczne rozwijanie opisu filmu na stronach filmwebu (ew po kliknięciu na jakiś dodatkowy "+" ale bez przeładowywania całej strony - analogicznie jak w komentarzach na onet.pl). Byłoby to wykonalne?
Grabol napisał(a):
Witam mam pewien problem podejrzewam ze z java script niektore strony juz ktorys raz mi sie to dzieje jak mam wlaczona obsluge java script poprostu sie nie otwieraja znaczy zaczyna ale pozostaje bialy ekran i staje w pewnym momencie jak wylacze obsluge js dla danej witryny wtedy sie laduje bez problemu z tym ze bez js brakuje sporo opcji na danej stronce nie mam juz pomyslow co z tym zrobic mam zaktualizowana js i opere czy ktos ma jakis pomysl?? z gory thx
JaDo napisał(a):
Podaj adresy tych stron. Wersja Opery, system? Masz włączone Turbo?