Autor | Zpráva | ||
---|---|---|---|
deader Profil |
#1 · Zasláno: 21. 3. 2010, 18:50:59
Neví někdo prosím o nějakém návodu, podle kterého by při dynamickém načítání obsahu stránky používat tlačítko zpět a vpřed, jak to lze např. u Gmailu? Stačila by mně i jen teorie, jak by to mělo fungovat. Hledal jsem na internetu a našel tohle http://dojocampus.org/content/2009/05/17/using-dojo-back-button-and-bookmarks/. To mi ale asi moc nepomůže, že? Obsah načítám takhle:
function spust(akce, prvek) { var vystup = document.getElementById(prvek); var hlavicka = document.getElementsByTagName('head')[0]; var dataLoader = document.getElementById('scriptLoader'); if(dataLoader) hlavicka.removeChild(dataLoader); script = document.createElement('script'); script.id = 'scriptLoader'; script.src = akce; x = document.getElementsByTagName('head')[0]; x.appendChild(script); return false; } Moc děkuji za rady. |
||
deader Profil |
#2 · Zasláno: 22. 3. 2010, 10:08:31
Název právě zobrazeného obsahu by šel přidávat do url za # jako kotva. Kotvy se ukládají v prohlížeči do historie, a tak při klepnutí na zpět by došlo jakoby k přechodu na předchozí kotvu. Nevím však, jakou událost použít k odchycení této změny.
|
||
Chamurappi Profil |
#3 · Zasláno: 22. 3. 2010, 10:14:48 · Upravil/a: Chamurappi
Reaguji na deadera:
„Kotvy se ukládají v prohlížeči do historie“ Ne ve všech prohlížečích, když se je rozhodne změnit skript. Nejsnazší je měnit adresu skrytého <iframu> .
„jakou událost použít k odchycení této změny“ Nevím přesně, jak je to s podporou události onhashchange , ale stoprocentní nebude. Můžeš pravidelně sledovat location.hash funkcí načasovanou přes setInterval .
|
||
deader Profil |
#4 · Zasláno: 22. 3. 2010, 12:40:08
Nemusel bych měnit skriptem, ale mohl bych normálně odkazem:
<a href="#obsah" onclick="spust(obsah)"> |
||
deader Profil |
#5 · Zasláno: 23. 3. 2010, 14:26:08
Již jsem vymyslel řešení, ještě jsem to pořádně nevyzkoušel, ale mělo by to fungovat:
Někde bude iframe, ve kterém se bude měnit adresa na iframe.php?co=prave-zobrazeny-obsah. iframe.php vypíše JS, který zavolá fci z rodičovského okna, která načte požadovaný obsah. Při stisknutí zpět se změní adresa iframu na předchozí a tudíž dojde k načtení předchozího obsahu. iframe.php: <html><body> <?php if(isset($co)) echo ' <script> window.parent.spust(\''.$co.'\',\'prvek1\'); </script> '; ?> </body></html> Děkuji za pomoc. |
||
Časová prodleva: 14 let
|
0