Autor Zpráva
tomyc
Profil *
Zdravím,
potřeboval bych poradit s procházením historie. Mám fotogalerii. Vyberu požadované album a zobrazí se mi fotografie v něm uložené. Tlačítkem zpět se mohu vrátit opět na výběr alba, přičemž zůstanou nastavené případné filtry, scrolování atd. Vše funguje až do té doby, než v albu kliknu pravým tlačítkem na fotografii a zvolím např. upravit komentář. Formulář pro úpravu komentáře se otvírá v iframu. V tom probíhá i zpracování a ukládání. Pokud pak kliknu na tlačítko zpět, stránka se nevrátí na přehled alb jak by měla. Tlačítko zpět musím stisknout tolikrát, kolikrát jsem načetl stránku v iframu. Pokud komentujete např. všechny fotografie v albu uklikáte se k smrti :-) Nešlo by nějak udělat, aby se stránky otvírané v iframu neukládaly do historie procházení (histori.back())? Je zvláštní, že se chaba projevuje jen v prohlížeči Google Chrome. Např Firefox zobrazuje historii správně.

Děkuji za rady
Tomyč
Keeehi
Profil
Změnit adresu stránky, aby se neuložila do historie zvládne window.location.replace(). Odchyť si událost odeslání formuláře, a z dat ve formuláři si sestav výslednou adresu a na ni pak přesměruj. Bohužel to tak jde jen pro metodu get.

PS. history
tomyc
Profil *
Moc nechápu jak to myslíš. potřebuju aby stránka v historii byla zachována s parametry i scrollováním. Nechápu proč jeden prohlížeč zaznamenává historii tak a druhý jinak. Zkoušel jsem ještě IE a ten se kupodivu chová jako Firefox, tedy tak jak bych si představoval. Problém je tedy jen v Google Chrome

Omlouvám se za histori - chybička se vloudila :-)
Moderátor Chamurappi: Opraveno.
Keeehi
Profil
Tak v prvním příspěvku píšeš, že nechceš ukládat stránky do historie a teď je tam zase chceš mít? Začínám se v tom ztrácet.

Případně by tu bylo ještě jedno řešení. Tu aktualizaci dat vyřeš s pomocí AJAXu. Zbavíš se tím iframu a tím i problémů s návratem zpět.
tomyc
Profil *
Omlouvám se jestli jsem se špatně vyjádřil. Nechci aby se mi ukládali do historie akce provedené v iframu. Pouze ty provedené v hlavním okně. Takhle mi to funguje ve všech prohlížečích kromě Chrome.
Máš pravdu že ajax by to asi vyřešil. Znamenalo by to pro mě předělat celý web. Pomocí iframů tam mám udělané skoro vše.
Zatím jsem to vyřešil tak, že když uživatel otevře iframe pro editaci fotky, v hlavním okně se pomocí javascriptu změní href odkazu zpět z history.back() na nazevGalerie.php. Přejde tedy zpět do galerie, ale ztratí filtry a scroll stránky.
peta
Profil
tomyc:
Pomoci onclick v iframu, pokud je ze stejneho webu jako hlavni okno, muzes prenaset parametry javascriptem do hlavniho okna a opacne. Pripadne muzes nastavovat cookies.
Jisp
Profil
tomyc
Nevím, je-li to přesně problém, který řešíš, ale i mně nefungovalo správně tlačítko "zpět" ve stránce s iframe (ve kterém se stránky mění). Nefungovalo správně v Chrome (ale také v defaultních prohlížečích mobilů a tabletů) a dělo se tak pouze v případě, že ikona či tlačítko "zpět" byly umístěny v tagu <A>. Jakmile byl tento tag odstraněn (a změna tvaru kurzoru je vyřešena skrze CSS), funguje history.back() ve všech prohlížečích.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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