Autor Zpráva
TomasRe
Profil
Dobrý den,
můžete mi poradi, jak lze upravit pomocí htaccess URL stránky z domena.cz/stranka#neco, aby se #neco nezobrazovalo - tedy na domena.cz/stranka?

Moderátor Davex: Titulek „htaccess - úprava URL“ nevystihoval podstatu dotazu. Příště zkus prosím vymyslet lepší.
Kajman
Profil
To nejde, část začínající tou mřížkou se na server vůbec neposílá.

Můžete ji odstranit javascriptem přímo v prohlížeči.
TomasRe
Profil
Kajman:A poradíte jak?
pcmanik
Profil
TomasRe:
Ak nevadí že sa stránka refreshne/skočí úplne navrch pri odstránení hashu dá sa použiť toto.
window.location.hash = '';

Pre všetky moderné prehliadače (IE > 9) bude fungovať replaceState pričom nedôjde k refreshu stránky.
history.replaceState('', '', window.location.pathname + window.location.search);

Takže polyfill pre všetky prehliadače bude takýto:
if (history.replaceState) history.replaceState('', '', window.location.pathname + window.location.search);
else window.location.hash = '';
TomasRe
Profil
pcmanik:
Děkuju moc, ale bohužel to funguje zatím jen na půl... Jde o to, že otevřu stránku, kde je pomoci "prettyPhoto" fotogalerie. Pokud kliknu na fotku, vloží se do URL "#prettyPhoto[skupina]/0", pokud vyskočím z lightboxu, upraví se znovu URL na stranka.php#prettyPhoto, potřeboval bych, aby se zpět vrátila na stranka.php. Tento script funguje pouze při refreshnutí stránky.
pcmanik
Profil
TomasRe:
Podľa dokumentácie k prettyPhoto by mala byť metóda callback spustená keď sa prettyPhoto zavrie.
Takže stačí do tej metódy vložiť ten kód ktorý som napísal vyššie.
Nejak takto:
callback: function(){
  if (history.replaceState) history.replaceState('', '', window.location.pathname + window.location.search);
  else window.location.hash = '';
}
TomasRe
Profil
pcmanik:
Moc se omlouvám, v javascriptu se vůbec nevyznám. Můžete mi prosím ještě poradit, kam to vložit? Dal jsem před <head> tento script:
<script type="text/javascript">
callback: function(){
  if (history.replaceState) history.replaceState('', '', window.location.pathname + window.location.search);
  else window.location.hash = '';
}
</script>
ale to nefunguje...
pcmanik
Profil
TomasRe:
Niekde na stránke ten plugin zrejme inicializuješ štýlom
$("a[rel^='prettyPhoto']").prettyPhoto();
takže len dovnútra stačí dopísať ten callback takto:

$("a[rel^='prettyPhoto']").prettyPhoto({
  callback: function(){
    if (history.replaceState) history.replaceState('', '', window.location.pathname + window.location.search);
    else window.location.hash = '';
  }
});
TomasRe
Profil
pcmanik:
Funguje to perfektně. Strašně moc děkuji.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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