Autor | Zpráva | ||
---|---|---|---|
tomyc Profil * |
#1 · Zasláno: 14. 6. 2012, 14:10:41 · Upravil/a: Moderátor (editace znemožněna) 14. 6. 2012, 15:59:32
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 |
#4 · Zasláno: 14. 6. 2012, 15:29:54
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 * |
#5 · Zasláno: 14. 6. 2012, 15:45:19
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 |
#6 · Zasláno: 15. 6. 2012, 14:48:51
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. |
||
Časová prodleva: 1 rok
|
|||
Jisp Profil |
#7 · Zasláno: 20. 6. 2013, 08:24:01
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. |
||
Časová prodleva: 11 let
|
0