MozillaPL.org - polskie centrum Mozilli

Główne menu:

[js] Buttonik zamiast odnośnika

Jak tworzyć strony WWW zgodnie ze standardami

Moderator: Pomocy?!

[js] Buttonik zamiast odnośnika

Postautor: trejder » 20 stycznia 2005, 16:05

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Witam serdecznie!

Powiedzmy, że lubie guziczki (batonki, swicze, itp. :) zamiast "zwykłych" odnośników. Buduję je sobie tak:

button OnClick="javascript:Go('admin.php')"

gdzie "dżawaszkryptowy" kodzik brzmi:

function Go(where)
{
document.URL=where;
}

Butonik się rysuje, ale jego klikaczowanie niet działać under Firefox so jest w tym kodzie błąd, albo niezgodność ze standardem, o której wykazanie uniżenie proszę! :)
trejder
 
Posty: 197
Z nami od: 20 stycznia 2005, 15:31
Lokalizacja: Katowice

Postautor: zwierz » 20 stycznia 2005, 18:42

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20050101 Firefox/1.0

Odpal Konsolę JavaScirpt (Narzędzia) w Firefoksie, kliknij w swój button i przeczytaj info w konsoli.
zwierz
Moderator
 
Posty: 1915
Z nami od: 31 sierpnia 2003, 10:13
Lokalizacja: Kraków

Re: [js] Buttonik zamiast odnośnika

Postautor: Cleriic » 20 stycznia 2005, 18:56

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Nie wnikam w ten js, tylko się zastanawiam dlaczego sięgasz prawą ręką do lewej kieszeni?
Przecież można zrobić tak:
Kod: Zaznacz cały
<a href="costam.php"><img src="button.gif" alt=""></a>
Wybierz Firefoksa i podbij Internet! :)
Cleriic
Moderator
 
Posty: 659
Z nami od: 09 stycznia 2004, 16:04
Lokalizacja: Polska :)

Re: [js] Buttonik zamiast odnośnika

Postautor: trejder » 21 stycznia 2005, 00:30

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Elo!

Cleriic pisze:Nie wnikam w ten js, tylko się zastanawiam dlaczego sięgasz prawą ręką do lewej kieszeni?
Przecież można zrobić tak:
Kod: Zaznacz cały
<a href="costam.php"><img src="button.gif" alt=""></a>


Bo są trzy względy - dwa estetyczne, banalne, ale jednak i jeden - funkcjonalny. Po pierwsze - taki obrazek się "nie kilka" i mi to na przykład bimba, ale mojejmu szefowi już nie. Po drugie - jeśli komuś (patrz wyżej) wpadnie myśl zmiany tekstu jaki pojawia się na guziorku (a wpada średnio piętnaście razy na sekundę) to muszę tego gifa malować od nowa. A po trzecie - najważniejsze - przy takim rozwiązaniu jest strasznie dużo cyrkowania, jeśli trzeba dany guziczek w danej sytuacji zdeaktywować. A gdy mam prawdziwego butona, to sobie dopisuję disabled i po bólu. A, że strona jest dynamiczna (PHP) więc takie przełaczanie pomiędzy stanami aktywny / nieaktywny to kwestia jednej zmiennej.

Czy wystarczająco wytłumaczyłem dlaczego - jak to ładnie określiłeś chcę (czyt. muszę - szef) sięgać sobie prawą ręką do lewej kieszeni? :)

P.S.: Jak włączyć tę konsolę, o której pisze przedmówca?

Dzięki !!!
trejder
 
Posty: 197
Z nami od: 20 stycznia 2005, 15:31
Lokalizacja: Katowice

Postautor: trejder » 21 stycznia 2005, 00:36

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Ano już odpaliłem. I dostaję mesaga:

Setting a property that has only a getter.

Jakkolwiek angielski znam dość dobrze, niewiele mi to mówi. Po kliknięciu jest wskazanie na linię:

document.URL=where;

Czy ktoś może mnie bardziej oświecić. Jeśli taki sposób jest nieprawidłowy / niezgodny ze standardem, to jak prawidłowo, programowo wymusić zmianę adresu w przeglądarce? Lub co to jest "getter" w tym kontekście, którego rzekomo ma moja "property", którą chciałem "setnąć"? :)
trejder
 
Posty: 197
Z nami od: 20 stycznia 2005, 15:31
Lokalizacja: Katowice

Postautor: Purchawa » 21 stycznia 2005, 10:58

Przeglądarka: Mozilla Firefox

Najpierw wstęp teoretyczny: obiekty mają właściwości, a te właściwości mogą być albo tylko do zapisu, albo tylko do odczytu, albo i do zapisu i do odczytu. Odczyt wartości właściwości dokonywany jest funkcją nazywaną popularnie getterem, a zapis - setterem. Właściwości tylko do odczytu nie mają settera, właściwości tylko do zapisu nie mają gettera. Próba zmiany wartości jakiejś właściwości jest właśnie wywołaniem settera tej właściwości.

A teraz do rzeczy: właściwość "URL" obiektu "document" jest tylko do odczytu. Nie można jej przypisywać wartości. Użyj właściwości "location".
Purchawa
 

Postautor: trejder » 21 stycznia 2005, 11:06

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Purchawa pisze:A teraz do rzeczy: właściwość "URL" obiektu "document" jest tylko do odczytu. Nie można jej przypisywać wartości. Użyj właściwości "location".


Bardzo dziękuję za odpowiedź, no i za świetny wstęp teoretyczny! :)
trejder
 
Posty: 197
Z nami od: 20 stycznia 2005, 15:31
Lokalizacja: Katowice

Postautor: Ludwik » 21 stycznia 2005, 11:45

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

yh... ale pamiętaj, że linki w JavaScript są złe ;]
Po pierwsze nie można na przyklad otworzyć ich w nowym panelu, po drugie przeglądarki nieobsługujące JS sobie z nimi nie poradzą. Zawsze lepiej starać się używać jaknajprostszych rozwiązań.
Ludwik
Moderator
 
Posty: 2908
Z nami od: 10 marca 2003, 10:05

Re: [js] Buttonik zamiast odnośnika

Postautor: E2rd » 21 stycznia 2005, 12:27

Przeglądarka: Mozilla/5.0 (Windows; U; WinNT4.0; PL; rv:1.7.2) Gecko/20040803

Hm, a tego batona się nie da zasymulować za pomocą CSS?
Masz pytanie? Tu są odpowiedzi :)
E2rd
Moderator
 
Posty: 3937
Z nami od: 26 marca 2002, 23:16

Re: [js] Buttonik zamiast odnośnika

Postautor: Domel » 21 stycznia 2005, 17:36

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7) Gecko/20040616

E2rd pisze:Hm, a tego batona się nie da zasymulować za pomocą CSS?

Pewnie ze sie da dla "nieklikanego" dajemy np:
Kod: Zaznacz cały
border-style: outset

a dla "klikanego" - hover
Kod: Zaznacz cały
border-style: inset
Domel
 
Posty: 2252
Z nami od: 14 kwietnia 2002, 19:10
Lokalizacja: Białystok

Postautor: Wojcieszka » 21 stycznia 2005, 18:07

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Ludwik pisze:linki w JavaScript są złe ;] nie można na otworzyć ich w nowym panelu, przeglądarki nieobsługujące JS sobie z nimi nie poradzą
to nieistotne ;), co innego roboty szukajek
Domel pisze:a dla "klikanego" - hover
Dla klikalnego - active :)
Do tego po wciśnięciu cieńsza ramka i paddingiem lekko w dół i w prawo, wtedy jest ślicznie (i tak samo niezależnie od systemu i przeglądarki). Pozostaje ból z brzydką ramką wokół linka związaną z focusem.
Wojcieszka
 
Posty: 12
Z nami od: 08 grudnia 2004, 17:23

Postautor: trejder » 27 stycznia 2005, 13:21

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.5) Gecko/20041108 Firefox/1.0

Ludwik pisze:yh... ale pamiętaj, że linki w JavaScript są złe ;]
Po pierwsze nie można na przyklad otworzyć ich w nowym panelu, po drugie przeglądarki nieobsługujące JS sobie z nimi nie poradzą. Zawsze lepiej starać się używać jaknajprostszych rozwiązań.


Oczywiście masz rację, ale... strona na której tego używam jest panelem sterowania pewnego serwisu, więc będzie używana tylko przez jedną osobę, na z góry ustalonym komputerze i przeglądarce, więc problem raczej nie istnieje! :)

Gdy robię coś "publicznego", zawsze staram się trzymać standardów! :)
trejder
 
Posty: 197
Z nami od: 20 stycznia 2005, 15:31
Lokalizacja: Katowice

Postautor: KriSSi » 18 marca 2005, 13:07

Przeglądarka: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Opera 7.54 [pl]

Ja rownierz bardzo dziekuje za odpowiedz bo tez mialem podobny problem.Tyle tylko ze rozchodzilo sie o to zeby cala linia w tabeli byla czula na klikniecie i działała jak odnosnik.taki numer w IE <a><tr>...</tr></a> lub tez <tr><a>...<a/></tr> jak najbardziej przejdzie a w Operze juz nie wiec document.location jest bardzo milusim rozwiazaniem
KriSSi
 

Postautor: Gość » 10 grudnia 2005, 18:32

Przeglądarka: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8) Gecko/20051111 Firefox/1.5

trejder pisze:Ano już odpaliłem. I dostaję mesaga:

Setting a property that has only a getter.

Jakkolwiek angielski znam dość dobrze, niewiele mi to mówi. Po kliknięciu jest wskazanie na linię:

document.URL=where;

Czy ktoś może mnie bardziej oświecić. Jeśli taki sposób jest nieprawidłowy / niezgodny ze standardem, to jak prawidłowo, programowo wymusić zmianę adresu w przeglądarce? Lub co to jest "getter" w tym kontekście, którego rzekomo ma moja "property", którą chciałem "setnąć"? :)
Gość
 


Wróć do Tworzenie stron WWW

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], dexter, Google [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: