Autor Zpráva
MATRAUX
Profil
Dobrý den,
mám problém s funkčností javascriptu v prohlížečích krom firefoxu 3.5

javascript otevře nové okno a do něj vytvoří novou webovou stránku s fotkou a menu pro výběr fotky a ještě načte znovu sám sebe aby byly funkční všechny prvky menu pro výběr fotky.
Ovšem problém je v tom, že v ostatních prohlížečích mi nefungují prvky menu (zpět, další, a přímý výběr fotky).

fotogalerie se nachází na www.matraux.ic.cz/dynamic/index.php

a javascript na www.matraux.ic.cz/dynamic/wf.js

Vůbec nevím kde by mohla být chyba.

ukázka javascriptu:
Moderátor Chamurappi: Odmazána. To nebyla ukázka, ale celý zdroják výše odkázaného JS, který se sem ani nevešel.
Joker
Profil
MATRAUX:
Ty funkce back a next jsou docela kuriózní. Místo aby prostě změnily obrázek, vypíší celou novou stránku s dalším/předchozím obrázkem.
Což je taky to, co se stane... pod aktuální stránkou se objeví nová stránka s tím obrázkem. A kliknutím na další/zpět u něj přibude zase další "stránka" s dalším obrázkem.
_es
Profil
MATRAUX:
Metóda document.write by mala byť použitá len raz, najprv zostaviť reťazec a potom ho celý naraz zapísať.
Premenné by mali byť definované cez príkaz var. Je to spoľahlivejšie a niektoré prehliadače môžu použiť lepšie optimalizácie.
MATRAUX
Profil
Joker:
Takže co by jsi doporučil abych s tím udělal ? :-)
MATRAUX
Profil
Problém vyřešen,

celý html jsem dal do divu který pak funkce next nebo back odstraní. Každá další fotky je vždy umístěna do DIVu s jiným id.

viz: www.matraux.ic.cz/dynamic2/ <-- odstaveno (http://penzionchalupa.cz/?index=6)
Joker
Profil
MATRAUX:
Takže co by jsi doporučil abych s tím udělal ? :-)
No v první řadě nevím, proč ta funkce smaže a následně zase vyrobí úplně tu samou strukturu.
Ani předávat to ID není potřeba. S tímhle návrhem stačí si někde držet ukazatel, na jakém obrázku zrovna jsem, a při kliknutí na další/předchozí jen změnit src obrázku a aktualizovat ukazatel.
MATRAUX
Profil
Joker:
Kéž bych veděl jak na to...
_es
Profil
MATRAUX:
www.jakpsatweb.cz/javascript/document-adresovani.html
www.jakpsatweb.cz/javascript/preload-obrazku.html
MATRAUX
Profil
_es:
No to je hezký, ale nevím jak mě pomůže přechod na druhou fotku když potřebuju těch přechodů několik za sebou.
_es
Profil
MATRAUX:
potřebuju těch přechodů několik za sebou.

A čo ti bráni to tak spraviť?
V tom vyskakovacom okne máš niekoľko obrázkov a stačí im len zmeniť vlastnosť src, tak, ako ti radí Joker.
Ak je dokument vytvorený len cez document.write(), tak je treba na konci ešte vykonať príkaz document.close().
Okrem toho stále skladáš dokument z množstva volaní document.write, čo môže spôsobiť problémy.
Ako to zlepšiť, som ti už radil.
Joker
Profil
MATRAUX:
Kéž bych veděl jak na to...
Jediná nová věc, kterou tam potřebujete použít, je metoda document.getElementById; Obrázku nastavíte nějaké ID, podle něj ho zaměříte a pak mu změníte src.
Zvýšit nebo snížit hodnotu proměnné snad zvládnete.
MATRAUX
Profil
Joker:
V JS dělám asi tak měsíc. Nemám moc představu o tom jak použít document.getElementById. , byl bych opravdu vděčný za nějakou ukázku zdrojového kódu. Návody na JS mi moc nepomohly.
_es
Profil
Joker:
Jediná nová věc, kterou tam potřebujete použít, je metoda document.getElementById;
Ani to netreba, v ovládači udalosti onclick môže pracovať s atribútom id cez this.id, atribútom src cez this.src a pod. A kolekcia obrázkov funguje cez document.images.
MATRAUX
Profil
Tak a teď jsem z toho úplně zblblý, protože už fakt nevím co za funkci bych měl použít, jak ji použít, kam ji napsat, jak ji napsat...... Každopádně děkuji za radu ohledně "document.close();"


Nechtěli by jste tu někdo z vás napsat třeba nějaký ten script? Docela by mi to pomohlo protože když tu jen říkáte co by bylo lepší použít tak mi to moc neřekne, protože nevím jak co pořádně použít.
MATRAUX
Profil
Tak konečně se mi to povedlo udělat, děkuji všem za rady, moc mi to pomohlo.
Nakonec jsem použil metodu "document.getElementById" a práce s prvky je udělaná přes "this.id".

Hotový kód je k vidění na www.matraux.ic.cz/d_book/wf.js a jeho použití na www.matraux.ic.cz/d_book/ .

V případě že by jste někdo věděli jak kód ještě zkrátit nebo zjednodušit tak mi prosím napiště.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: