Jak zrobić userjs który modyfikuje kod (zamienia na coś innego)?

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

Jak zrobić coś takiego że podczas wczytywania strony zamienia w kodzie coś na co innego? Na przykład coś takiego:

<img src="image.png">

na na przykład:
<img src="image.gif">


Chodzi mi o to czy istnieje proste polecenie typu:
replace("<img src="image.png">", "<img src="image.gif">")
do grzebania w kodzie?

Wasacz napisał(a):

http://www.w3schools.com/jsref/jsref_replace.asp

A co konkretnie chcesz zrobić?

Woj72 napisał(a):

Podłączę się pod wątek, bo szukam rozwiązania bardzo podobnego problemu:
chciałbym automatycznie do nazwy każdego obrazka na stronie dodawac nazwę domeny, z której pochodzi.Krótki przyklad: wchodze na jakas podstrone powiedzmy onetu, na ktorej znajduja sie 2 obrazki - 1.jpg i 2.jpg.Skrypt dodawalby do tych nazw domene czyli w oknie dialogowym zapisywania obrazka w nazwie pliku pojawialoby sie juz: "www.onet.pl1.jpg" i "www.onet.pl2.jpg".
Replace pewnie bedzie wlasciwa komenda ale co dalej? Czy kod html analizowac przez document.body.innerHTML ? Nie mam pomyslu jak to zrobic, zeby tekst przeszukac znak po znaku (bo nie wiem z gory co bedzie zastepowane - czyli pewnie trzeba jakos "odłowić" znaki wystepujace przed ".jpg"?) Bede wdzieczny za wszelkie wskazowki

daroc napisał(a):

Takie czary-mary łatwiej (moim zdaniem) robi się poprzez proxy - np. Proxomitron.

szyk napisał(a):

Originally posted by daris:

Chodzi mi o to czy istnieje proste polecenie typu:
replace("", "")
do grzebania w kodzie?


Można do tego celu użyć stylów użytkownika zamiast korzystać ze skryptów użytkownika:

img[src="/daris/avatar.pl"]   
{content:url("http://my.opera.com/szyk/avatar.pl") !important}

daris napisał(a):

Z tym image'm to był taki przykład. Ogólnie chodzi mi o to żeby zamienić jakiś tam kod na coś innego.


Na przykład spolszczyć sobie coś na stronie:

<h2 id="quickreply" class="clear header">Quick reply</h2>

i chciałbym żeby było
<h2 id="quickreply" class="clear header">Szybka odpowiedź</h2>

ale to taki przykład


I do tego potrzeba by było jeszcze jakiś ograniczeć typu: z przodu musi być tekst: <h2 id="quickreply" class="clear header"> a za nim </h2> bo inaczej to by zamieniło wszystkie Quick reply na Szybka odpowiedź

Wasacz napisał(a):

Originally posted by daris:

Na przykład spolszczyć sobie coś na stronie:


To akurat najprościej w CSS:

h2#quickreply {content:"Szybka odpowiedź";}

mihalo2 napisał(a):

a gdyby tak zmienic wyglad wyszukiwarki google na stary? bo tne mnie wkurza jeszcze pewnie boxy reklamowe niedluga beda po lewej stronie eh

Barthezdeleted napisał(a):

Originally posted by mihalo2:

a gdyby tak zmienic wyglad wyszukiwarki google na stary? bo tne mnie wkurza jeszcze pewnie boxy reklamowe niedluga beda po lewej stronie eh


Na boxy reklamowe na google dobrze robi Operapedia/Googlepedia:
Co i jak: http://adas.jogger.pl/2006/06/21/googlepedia-dla-opery/
Najnowszy skrypt pobierz stąd: http://opera.gt500.org/operapedia/operapedia.js

Nigatsu napisał(a):

Odgrzewam wątek p bo sam nie wiem jak się do pewnej rzeczy zabrać. Chodzi o zmianę w odnośnikach na pewnej stronie z tapetami. Link do obrazka jest np. .../imga-170130-.html, zamiast obrazka jednak otwiera się jakaś podstrona o tym adresie i dopiero na niej jest odnośnik do właściwego obrazka i ma on postać .../img-170130-.html. Czy dałoby się jakoś ominąć tą "postronę"? Żeby już na "głównej" stronie odnośniki były poprawione?

Ryszard napisał(a):

Originally posted by Nigatsu:

Link do obrazka jest np. .../imga-170130-.html

Z tego co wiem to ewentualnemu skrypciarzowi będzie łatwiej jeżeli podasz cały adres.
A jak jeszcze najpierw zrobisz sobie ręcznie taki poprawiony link
(czyli prawoklik - kopiuj adres odnośnika - wklejasz adres w pasek adresu - edytujesz i [Enter]) i sprawdzisz czy zadziała
to będzie miał o jedno sprawdzenie mniej.

Nigatsu napisał(a):

No dobra.
Jest taki serwis z tapetami www.hebus.com. Normalny link do tapety wygląda tak http://www.hebus.com/img-(numer)-(nazwa).html (czasem bez nazwy i wtedy na końcu jest samo "-"), jednak występują tam też tapety "od 18 lat" i dostanie się do nich jest troszkę utrudnione. Mianowicie odnośniki do nich na stronie głównej wyglądają tak http://www.hebus.com/imga-(numer)-(nazwa).html, otwiera się pod strona i na niej dopiero jest właściwy odnośnik w którym imga zamienione jest na img.
Po skopiowaniu odnośnika ze strony głównej, usunięciu a i wklejeniu do paska adresu [Enter] strona z tapetą ładnie się otwiera.
Myślę że teraz wszystko wygląda jaśniej.

ja_szczur napisał(a):

jakoś tak: (z głowy, bez sprawdzania czegokolwiek, resztę dopracuj sam ;-))

var a = document.getElementsByTagName('a');
for(var i=0; i<a.length; i++) {
  if (a[i].href.indexOf('/imga-') > -1) {
    a[i].href = a[i].href.replace('/imga-', '/img-');
  }
}

Nigatsu napisał(a):

Nistety nie chce działać, a na JS to się nie znam... Już lepiej mi idzie z css ale też mi się nie udało. Nawet nie wiem czy css tu coś zdziała. No nic będę jeszcze próbował.

daris napisał(a):

Nie ma sensu zakładać nowego tematu więc napiszę tutaj.

Jest jakiś userjs który zamienia na przykład:

http://opera.com/

na
<a href="http://opera.com/">http://opera.com/</a>

czyli poprostu na klikalne linki? Dla Firefoksa jest Linkification (nie wiem czy nie zrobiłem żadnego błędu w nazwie bigsmile ). A jak takie coś zrobić w operze?

adas napisał(a):

Może o to chodzi http://mojaopera.9g.pl/wiki/Skrypt_użytkownika_-_Linki_w_plikach_tekstowych ?

daris napisał(a):

Mniej więcej o to tylko że na stronach a nie w dokumentach - jak to przerobić? (samo wywalenie pierwszego if'a nic nie daje)

Ryszard napisał(a):

Originally posted by daris:

Nie ma sensu zakładać nowego tematu więc napiszę tutaj.

Jest jakiś userjs który zamienia na przykład:

http://opera.com/

na
http://opera.com/

czyli poprostu na klikalne linki? Dla Firefoksa jest Linkification (nie wiem czy nie zrobiłem żadnego błędu w nazwie bigsmile ). A jak takie coś zrobić w operze?


Mało?

daris napisał(a):

Mało bigsmile - trzeba zaznaczyć (lub naklikać się dziesiątki razy bo dziwnie zaznacza - jak kliknę 2 razy na tekst opera to zaznacza się http://opera więc musiałbym klikać na com), trzeba rozwinąć menu pod prawoklikiem i co najgorsze - otwiera w tej samej zakładce p

Firefoksowe rozwiązanie wydaje mi się najlepsze wink

daroc napisał(a):

Preferencje -> zaawansowane -> karty -> używaj bieżącej (wyłączyć)
Sam nie wiem dlaczego ta opcja jest domyślnie zaznaczona, szczególnie że w przypadku domyślnego przeglądania stron na kartach otwarcie nowej karty nie jest jakimś traumatycznym wydarzeniem.
To aż taki problem klikać na "com"? Preferencje -> zaawansowane -> paski narzędzi -> otwieraj submenu po dwukrotnym kliknięciu. Osobiście wyłączyłem.

Skoro Firefox pod tyloma względami jest dla Ciebie lepszy - nie ma przeszkód, żebyś go używał.

A jeszcze a propos nieklikalnych linków - zwróć się do autora strony, że nie przemyślał ergonomii strony. wink

rivanel napisał(a):

Witam, ja w podobnej sprawie.

Próbowałem zmienić wcześniejszy skrypt tak aby w linku np

a href="forum.php?temat=6004"


dodać "_"

a href="_forum.php?temat=6004"



<script type="text/javascript">

var a = document.getElementsByTagName('a');
for(var i=0; i<a.length; i++) {
if (a.href.indexOf('forum.php') > -1) {
a
.href = a.href.replace('forum.php', '_forum.php');
}


</script>



próbowałem tez podobnego skryptu, bardziej ogólnego

<script type="text/javascript">

var str="forum.php"
document.write(str.replace(/forum/g, "_forum"))

</script>


ale nie udała mi sie ta sztuczka, mogę liczyć na czyjąś pomoc?

gdyby skrypt dodatkowo zmienial pola typu (logowanie jako przyklad)

<form method="POST" action="modul.php?akcja=logowanie">


na

<form method="POST" action="_modul.php?akcja=logowanie">


to juz wogule bym był niesamowicie uradowany

moze cos zle robie?
w ustawieniach mam wyznaczony folder userjs, jest w nim plik js
na wszelki wypadek dodalem do operadef6.ini

[User Prefs]
Always Load User JavaScript=1



Będę wdzięczny za wszelka pomoc
Pozdrawiam

PS. Daris.. kliknij na

http://opera.com

4 razy i bedziesz mial caly adres

Wasacz napisał(a):

Nie testowałem, ale jeśli pojawi się alert to znaczy, że wszystko jest ok. Co najwyżej może się znaleźć jakiś błąd w regexpach, ale to już sobie poprawisz smile

user.js (w IE nie zobaczysz)

A tak btw, jaki sens tego?

Originally posted by rivanel:

wogule


faint