[#1] Niuanse w JS czyli parent czy top oraz z forms czy bez?
Witam, piszę sobie grę w php+javascript. Działa wyśmienicie i pod IBrowse, i pod nowym IE i Mozillą. Jednakże pod starszą wersją IE (nie chce mi się sprawdzać jaką) wywali mi drobne błędy nieistotne, ale jednak tak z czystej ciekawości chciałem się zorientować dokładnie co piszę.

Mianowicie..

mam kilka ramek i odwołuję się do różnych elementów z nich. Ramki te, to no: "vis" albo "upd". I teraz sprawa tego typu, że np: z jednej ramki wysyłam do drugiej przeładowanie elementów graficznych.

więc w ramce "vis" mam odpowiednie grafiki. Mają się one zmieniać, gdy w ramka "upd" tego zarząda. Wymyślę przykład:

Robię więc to tak, to kawałek kodu w ramce "upd":

var a=5;
var part="images/obrazek"+a+".png";
eval("top.vis.images.obrazek.src=part");

no i taki kawałek kodu działa znakomicie pod wymienionymi przeglądarkami, zmienia obrazek, ale pod tym starszym IE wywala błąd: że "top.vis.images.obrazek nie jest obiektem" (nie wiem, może wyrażenie w part powinno być w '').

Tak więc pytania z tematu tego postu brzmią tak: czy parent odwołuje się do nadrzędnej ramki? W tym przypadku jest top, czyli od razu "leci" się od głównej?

Oto te ramki, powycinałem zbędne rzeczy, by nie zaciemniać obrazu (powycinałem znaki mniejszości/większości):

frameset framespacing="0" cols="350,*,0"

frame name="vis" src="vis.php"

frameset framespacing="0" rows="70,*"

frame name="msg" src="msg.php"

frame name="obj" src="obj.php"

/frameset

frame name="upd" src="upd.php"

/frameset

wygląda to tak, że po lewej jest ramka vis, w środku są dwie ramki (u góry msg, na dole obj) a po prawej jest ramka upd. Tak więc myślę, że wszystkie te ramki traktować mogę jako top.vis, top.upd, top.obj, top.msg, etc. Dobrze myślę?

No i druga sprawa, czy jeżeli odwołuję się do elementu grafiki to czy dodawać "images", bez tego też działa, ale tak z ciekawości pytam. Oto przykład:

top.vis.document.images.obrazek.src="pliczek.png";

Podobnie sprawa odnosi się do formularzy, czy dodawać "forms":

top.vis.document.forms.dana.value='123456';

Dziękuje serdecznie z góry za wszelkie odpowiedzi, no i mam nadzieję, że ten post pomoże innym w przyszłości jeżeli będą mieli dylematy tego typu w JS. Pozdrawianesa!!

[#2] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@BagoZonde, post #1

> czy parent odwołuje się do nadrzędnej ramki?

Kazda ramka/okno ma wlasciwosc parent, ktora wskazuje na obiekt Window, w ktorym jest ona/ono zawarte, natomiast top jest uniwersanlny skrot, ktora zawsze wskazuje na okno najwyzszego poziomu. Dla ramek, ktore sa bezposrednimi potomkami okna najwyzszego poziomu, wlasciwosc top = parent.

> jeżeli odwołuję się do elementu grafiki to czy dodawać "images"

Niekoniecznie. Tablica images[] jest pomocna, jesli chcesz sie przeleciec po wszystkich jej elmentach, w celu ich podmiany na przyklad. Jesli insteresuje cie jeden obrazek, nie musisz sie do niego tak odwolywac.

[#3] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@_arti, post #2

To jest forum dotyczące programowania AmigaOS i systemów pochodnych. Wątek przenoszę do HydeParku i upominam założyciela.

[#4] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@_arti, post #2

@arti
Dzięki, czułem, że właśnie to Ty odpiszesz. Już kiedyś się na PPA odpisałeś a propos mego pytania z pisaniem www. No ok, rozumiem. Dzięki za rozjaśnienie. Kwestia tylko tego typu, co ten starszy IE więc wywala z tym błędem, podam dokładnie występujący błąd:

"top.upd.document.objupdate.msg nie jest obiektem"

a to ten kawałek kodu w ramce "msg":

top.upd.document.objupdate.msg.value='-1';

odwołuje się do formularza w ramce "upd":

-------------

form name="objupdate" i tak dalej...

input name="msg" type="hidden" value=""

....

/form

-------------

Sprawa niby prosta, ale jednak pod tym starszym IE wywala błąd.



P.S. Sorry, ale widziałem (nawet dziś) i sam zakładałem w tym dziale rzeczy dotyczące javascript. Zresztą programuję to w CEDzie pod Amigą (hiih ;P), więc proszę wybaczyć. BTW pobieżnie nie jess to sprecyzowane, że to programowanie pod AmigaOS, napisane jest: forum dla programistów, tym opisem się kierowałem. A obok nazwy działu Programowanie, rzeczywiście w nawiasie występuje niepozorny a jakże ważny napis: Amiga. :) sori



Ostatnia modyfikacja: 05.09.07 14:54
[#5] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@BagoZonde, post #4

Jeśli te IE to 4 lub 5.0 (nie 5.5) to się zbytnio nie sugeruj błędami. Te przeglądarki mają poważne błędy w obsłudze JS, co netszkap z tego okresu nie dotyczy.

[#6] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@BagoZonde, post #4

1. sprawdz bledy w kodzie
2. co to jest document.(...).images.obrazek? Czy to jest okreslony atrybut name dla tego obrazka, tzn name="obrazek"?
3. ktora wersja IE?

[#7] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@_arti, post #6

Ad.1. Błędów w kodzie nie ma, był dopieszczany sto razy i sprawdzany pod nowymi Mozillami, IE oraz IBrowse, Voyager i AWeb. Tylko na operze nie testowałem, nawet zero warningów.

Ad.2. co do atrybutów, żeby było jasnie i przejrzyście:

top.vis.document.obrazek.src="plik.png"

gdzie vis to ramka, obrazek to dany plik graficzny, zaś name jest zawarty w img tego pliku graficznego.

w przypadku formularza:

top.upd.document.formularz1.zmienna.value='1';

gdzie upd to ramka, formularz1 to nazwa formularza, zmienna to name w inpucie tego formularza.

Dopowiem, że błędów tych jest zaledwie garstka, a tego typu operacji o wiele więcej.

Ad.3. Ten IE to 5, wersja: 5.00.2614.3500 (tą wersję z kropkami podałem tylko dlatego, że może to numer seryjny, heeeh :D).

Chyba zgodzę się z Twoim przedmówcą, możliwe, że to ten IE był trefny.. Szukam chętnych do betatestów gry pod przeglądarką Opera. Na razie linka gry nie podaję, bo domyślni i tak się domyślą a nie ma jeszcze sensu robić wielkiego "halo", choć projekt jest już dojrzały.

[#8] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@BagoZonde, post #7

Ja jestem fanatycznym użytkownikiem opery ;) . Tyle że programista ze mnie żaden.

[#9] Re: Niuanse w JS czyli parent czy top oraz z forms czy bez?

@Grygus, post #8

Ooooo ^_^. Wiesz, taki betatester nie ma łatwego życia. Masz jeszcze szansę się wycofać :). Sprawa byłaby tego typu, że informowałbyś mnie, czy są jakieś błędy w JavaScript, etc. Nie wiem jak w operze, ale taka Mozilla ma konsolę błędów, w IE też jest to komunikowane, w Voyagerze amigowym działa też. Jakby co, to łap mnie na dżi-dżi.

F4NX4R3PLY

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem