Witam, często widzę na stronach taki link: <a rel="nofollow" href="javascript:void(0);"></a>
Pytanie do was: Jak to działa? Dokąd odsyła nas ten link? Jak zlokalizować plik js na serwerze, którzy jest tu wykonywany?
Z góry dziękuję za odpowiedzi.
Wątek zablokowany 2015-10-27 19:56 przez dzek69.
Witam, często widzę na stronach taki link: <a rel="nofollow" href="javascript:void(0);"></a>
Pytanie do was: Jak to działa? Dokąd odsyła nas ten link? Jak zlokalizować plik js na serwerze, którzy jest tu wykonywany?
Z góry dziękuję za odpowiedzi.
To oznacza, że po kliknięciu w link ma się wykonać kod, który jest przekazany dalej. Natomiast co do samego void(0)
to wykorzystuje to słowo kluczowe void
, które dla każdego argumentu zwraca undefined
. Słowem ten link nie robi nic.
Inną sprawą jest to, że tak się raczej nie powinno pisać.
Uzupełniając wypowiedź winerfresha (gdzie jest mój post, przecież odpisywałem w tym temacie :(): taki kod ma na celu stworzenie elementu <a>
, po którego kliknięciu nic się nie dzieje (bez sensu więc, zeby to był element <a>
, ale to inna bajka). Można równie dobrze było wpisać w href sam hash #
.
Zdarzenie obsługujące ten przycisk jest dodane w kodzie javascript - gdzie? Cholera wie ;) Niektóre z narzędzi developerskich mogą pokazywać miejsce, w którym zdarzenie zostało przypięte, ale w praktyce przy używaniu bibliotek kończy się to czymś takim: http://i.imgur.com/m2jZ9Kg.jpg - wszystkie zdarzenia są przypinane w tej samej linii spakowanego jQuery.
Dobra, to weźmy na warsztat horn.eu
http://pl.horn.eu/pl/PL/PRODUKTY/DLA_DOMU/ACER/PROJEKTORY_KINA_DOMOWEGO/K750?s1=1 Na tej stronie mamy js obsługujący buttony na dole stronie "Dokumenty" i "Sprzedaż".
W źródle strony jest:
[code]
<div class="product_tab"><a href="javascript:void(0);" name="button" ref="2">DOKUMENTY</a></div>
<div class="product_tab"><a href="javascript:void(0);" name="button" ref="3">SPRZEDAŻ</a></div>
[/code]
Jak dostać się/zlokalizować skrypt obsługujący te buttony?
Można użyć Chrome Dev Tools tak jak ja zrobiłem i otrzymałem:
function () {
_self.Reload(this.Index)
this.blur()
return true
}
Ogólnie strona używa Prototype. Pytaniem jest po co Ci ta wiedza? Chcesz uzyskać taki sam efekt u siebie na stronie? Jak tak to źle kombinujesz. Znacznie łatwiej będzie Ci poszukać w internecie: javascript tabbed panels
.
Natomiast jeśli chcesz w to kliknąć używając JSa to wystarczy elem.click()
.
Okej. Miałbym jeszcze kilka pytań. Skąd jest ładowany content pod buttonami? W kodzie źródłowym strony go nie ma, więc jest ładowany ze skryptu. Czyli leży gdzieś w plikach *.js na serwerze strony? Tak mi się przynajmniej wydawało, do czasu aż je przejrzałem i nigdzie nie znalazłem żadnych odsyłaczy do tych plików pdf. Nawet żadnego stringa z contentu nie znalazłem. Czy może jest to jakoś ukryte dla użytkownika? Jeżeli tak, to w jaki sposób?
javascript:void(0); używane jest jeśli chcesz np. po kliknięciu dać popup, ale żeby strona nie skakała Ci do góry. Dając # rzeczywiście masz pusty link, ale jest to anchor który przeniesie Cię na samą górę strony. A wielokrotnie tego najzwyczajniej nie chcesz. javascript:void(0); natomiast pozostanie w pozycji okna w którym jesteś. javascript:void(0); natomiast nie odnosi się w ogóle do Twojego JSa (w sensie skryptu). Nie ma on nic z tym wspólnego. javascript:void(0); to odwołanie jedynie do JSa wbudowanego w przeglądarce w którym zapisana jest ta instrukcja.