Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

[JS] podgl?d nazwy wywo?ywanej funkcji JS



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Webmasterstwo
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
kisiel



Doczy: 04 Sty 2009
Posty: 38

PostWysany: 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.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Garf



Doczy: 25 Maj 2005
Posty: 3607
Skd: Rzeszw

PostWysany: 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
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
MarekGubiec



Doczy: 13 Lis 2005
Posty: 1343
Skd: ?ask

PostWysany: 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
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Odwied stron autora Numer GG
kisiel



Doczy: 04 Sty 2009
Posty: 38

PostWysany: 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.
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
xadi



Doczy: 20 Lis 2009
Posty: 39

PostWysany: 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
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo Wylij email
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> Webmasterstwo Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




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

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