Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[JS] podgląd nazwy wywoływanej funkcji JS



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
kisiel



Dołączył: 04 Sty 2009
Posty: 38

PostWysłany: Pon Sty 18, 2010 12:08 pm  OP    Temat postu: [JS] podgląd nazwy wywoływanej funkcji JS Odpowiedz z cytatem Pisownia

Witam
Chcialem sie zapytac w jaki sposob moge podejrzec jaka funkcja JS i z jakimi parametrami jest wywolywana po nacisnieciu pewnego klawisza. Mam gotowe menu napisane w JS i po nacisnieciu pewnego przycisku nie jest uzytkownik przenoszony do pewnej podstrony tylko menu rozwija sie nizej, jesli ma nizszy poziom.

To samo dzialanie chce rowniez uzyskac klikajac na odnosnik w innym miejscu i chce w jakis sposob podejrzec jaka funkcja JS jest wywolywana podczas rozwiajania konkretnie tego elementu JS.
Z gory dzieki za pomoc.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Garf



Dołączył: 25 Maj 2005
Posty: 3607
Skąd: Rzeszów

PostWysłany: Pon Sty 18, 2010 3:16 pm      Temat postu: Odpowiedz z cytatem Pisownia

Po prostu analizując kod JS. Wywoływanie funkcji JS przy kliknięciu/najechaniu/etc na jakiś element możesz sprawdzić w atrybutach tego elementu w kodzie HTML .
_________________
Internet nadal „nic nie rozumie”, żadnego odkrycia, choćby od niego zależał los świata,
ale nadanego w egzotycznym języku, nie odróżni od nieco mniej ważnej wieści,
że u ciotki w placku z jabłkami zrobił się w piekarniku zakalec.
Stanisław Lem
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
MarekGubiec



Dołączył: 13 Lis 2005
Posty: 1343
Skąd: Łask

PostWysłany: Pon Sty 18, 2010 3:59 pm      Temat postu: Odpowiedz z cytatem Pisownia

Konsola JavaScript w przeglądarce? A może Firebug ma jakiegoś takiego loga... Trzebaby pogooglać.
_________________

Frontpage is not and never been WYSIWYG. (...) It was more like WYSIWTF. (userfriendly.org)
Working on: My website
@MarekGubiec
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
kisiel



Dołączył: 04 Sty 2009
Posty: 38

PostWysłany: Pon Sty 18, 2010 5:23 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

We wlasciwosciach tego elementu nie ma jaka funkcja jest wywolywana podczas klikania na niego.
Firebug nie udostepnia takiej funkcjonalnosci i w konsoli JavaScript tego nie widze.
Mam takie menu: http://www.dhtmlgoodies.com/scripts/slidedown-menu2/slidedown-menu2.html
I chce jeszcze pod inne linki na stronie podczepic mozliwosc rozwijania poszczegolnych elementow. Z JS jestem bardzo slaby. Moglby ktos podpowiedziec jaka funkcja jest np. wywolywana (i z jakimi parametrami) klikajac (rozwijajac) element PRODUCTS???
Z gory dzieki.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
xadi



Dołączył: 20 Lis 2009
Posty: 39

PostWysłany: Sob Sty 23, 2010 2:17 am      Temat postu: Odpowiedz z cytatem Pisownia

no nie ma w atrybutach plain htmla informacji o przypisanym event'cie onclick,
ale mozesz to zobaczyc uzywajac, wspomnianego juz firebuga, jednego z najlepszych przyjaciol webmastera, "jesli cos na stronie nie dziala, to firebug to wie, tylko wystarczy zapytac" :)

  • https://addons.mozilla.org/en-US/firefox/addon/1843
  • zakladka HTML, pozniej po prawej DOM,
  • po lewej stronie (domyslnie) jest narzedzie do odnalezienia obiektu w zrodle strony za pomoca wskazania szczurem, uzyj go, do wskazania 'Products',
    w zakladce DOM pojawia sie ciekawe informacje o tym <a></a>
    m.in. aktualne (wszystko jest wypelnione informacjami pobieranymi w czasie rzeczywistym) listen'owanie na onclick event,
    w twoim konkretnie przypadku jest to: showSubMenu(e, inputObj),

    to co teraz, jesli znamy funkcje?

  • idziemy do konsoli (wlaczamy ja wczesniej)
    teraz wpisujemy w konsoli:
    Kod:
    alert(showSubMenu)
    czyli chcemy, aby alert wyswietlil informacje zwiazane z (c++'owski odpowiednik to wskaznik) funkcji(a) showSubMenu,
    bledem byloby alert(showSubMenu()), wtedy alert chcialby wyswietlic WYNIK dziania tej funkcji,

    pojawia nam sie:
    Kod:
    function showSubMenu(e, inputObj) {
        if (this.tagName) {
            inputObj = this.parentNode;
        }
        if (inputObj && inputObj.tagName == "LI") {
            divToScroll = inputObj.getElementsByTagName("DIV")[0];
            for (var no = 0; no < otherDivsToScroll.length; no++) {
                if (otherDivsToScroll[no] == divToScroll) {
                    return;
                }
            }
        }
        hidingInProcess = false;
        if (otherDivsToScroll.length > 0) {
            if (divToScroll) {
                if (otherDivsToScroll.length > 0) {
                    popMenusToShow();
                }
                if (otherDivsToScroll.length > 0) {
                    autoHideMenus();
                    hidingInProcess = true;
                }
            }
        }
        if (divToScroll && !hidingInProcess) {
            divToScroll.style.display = "";
            otherDivsToScroll.length = 0;
            otherDivToScroll = divToScroll.parentNode;
            otherDivsToScroll.push(divToScroll);
            while (otherDivToScroll && otherDivToScroll.tagName != "BODY") {
                if (otherDivToScroll.tagName == "DIV" &&
                    otherDivToScroll.id.indexOf("slideDiv") >= 0) {
                    otherDivsToScroll.push(otherDivToScroll);
                }
                otherDivToScroll = otherDivToScroll.parentNode;
            }
            ulToScroll = divToScroll.getElementsByTagName("UL")[0];
            if (divToScroll.style.height.replace("px", "") / 1 <= 1) {
                scrollDownSub();
            }
        }
        return false;
    }


  • dobra, mamy kod, to co teraz?
    zrobimy takiego c++(+winapi) dll injection'a w funkcje

    w konsoli wpisz:
    Kod:
    function printObj(obj) {
    var opt='';
    for (i in obj) opt+=(i+': '+obj[i]+"\n");
    alert(opt);
    return opt;
    };

    function showSubMenu(e, inputObj) {
    /*************/
    printObj(e); printObj(inputObj); printObj(this);
    /*************/
        if (this.tagName) {
            inputObj = this.parentNode;
        }
        if (inputObj && inputObj.tagName == "LI") {
            divToScroll = inputObj.getElementsByTagName("DIV")[0];
            for (var no = 0; no < otherDivsToScroll.length; no++) {
                if (otherDivsToScroll[no] == divToScroll) {
                    return;
                }
            }
        }
        hidingInProcess = false;
        if (otherDivsToScroll.length > 0) {
            if (divToScroll) {
                if (otherDivsToScroll.length > 0) {
                    popMenusToShow();
                }
                if (otherDivsToScroll.length > 0) {
                    autoHideMenus();
                    hidingInProcess = true;
                }
            }
        }
        if (divToScroll && !hidingInProcess) {
            divToScroll.style.display = "";
            otherDivsToScroll.length = 0;
            otherDivToScroll = divToScroll.parentNode;
            otherDivsToScroll.push(divToScroll);
            while (otherDivToScroll && otherDivToScroll.tagName != "BODY") {
                if (otherDivToScroll.tagName == "DIV" &&
                    otherDivToScroll.id.indexOf("slideDiv") >= 0) {
                    otherDivsToScroll.push(otherDivToScroll);
                }
                otherDivToScroll = otherDivToScroll.parentNode;
            }
            ulToScroll = divToScroll.getElementsByTagName("UL")[0];
            if (divToScroll.style.height.replace("px", "") / 1 <= 1) {
                scrollDownSub();
            }
        }
        return false;
    }


  • teraz dostajesz w oknie to, co zapewne cie zainteresuje (ale to samo masz w firebugu :D),

btw. pamietaj, ze to, ze nie widzisz calego tekstu w oknie nie oznacza, ze nie mozesz go calego zaznaczyc i przekopiowac do np. edytora tekstowego

ps 'naumiej' sie z firebugiem wspolpracowac, obsluga jest intuicyjna xD
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Webmasterstwo Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.16716 sekund, zapytan = 12
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |