Změna adresy v JS

Prohlížeče podporující stav (state) v objektu window.history dokáží měnit tvar URL bez nutnosti přecházet na jinou stránku nebo vůbec dělat cokoliv dalšího.

Změna adresy bez načtení jiné stránky

Tuto funkci podporuje IE 10, Firefox 4, Chrome 5, Opera 11.5 a novější. Naopak podpora chybí ještě i v Opeře Mini 8.

U AJAXových aplikací jde díky tomu zajistit, že se dá na aktuální stránku odkázat a ta se může přímo načíst ze serveru. Zároveň to umožňuje plnohodnotnou funkci tlačítka Zpět.

Více v článku:

Změna URL

Tento článek se zabývá samostatnou změnou URL bez dalších navazujících činností. K prosté změně se hodí použít metodu replaceState – změna adresy se potom neuloží do historie.

Použití je prosté:

history.replaceState(
  {}, 
  '', 
  'nova-url'
);

Metoda replaceState má tři parametry:

  1. {} – objekt stavu, v tomto případě není potřeba
  2. titulek – nikde se nezobrazuje, může být prázdný
  3. adresa – adresa, která nahradí tu stávající

Vyzkoušejte:

Využití

Měnit takto URL se hodí třeba k jejich čištění různých sledovacích parametrů. Případně pro přidávání parametrů jiných.

Odstranění UTM parametrů z URL

Asi nejčastěji se používají UTM parametry.

Jedná se o řetězce typu:

?utm_source=rss&utm_medium=feed&utm_campaign=nazev

Případně místo otazníku může být UTM část adresy za mřížkou:

#utm_source=rss&utm_medium=feed&utm_campaign=nazev

Pro odstranění UTM trackovacích parametrů poslouží následující funkce:

var odstranitUtm = function() {
    var puvodniAdresa = window.location + "";
    var bezUtm = puvodniAdresa.replace(/([#&?])utm([_a-z0-9\.=]+)/ig, "");
    
    if (puvodniAdresa !== bezUtm && history.replaceState) {
        history.replaceState({}, '', bezUtm);
    }  
};

Samostatná ukázka

Při používání Google Analytics se hodí funkci pro odstranění parametrů zavolat až jako callback po započítání návštěvy:

Tedy rozšířit standardní:

ga('send', 'pageview');

O zavolání funkce odstranitUtm.

ga('send', 'pageview', {'hitCallback': odstranitUtm});

Sledovací parametry se tak z URL odstraní až po jejich započtení do Google Analytics.

To je všechno. Líbil se vám článek a chcete se dozvědět, až vyjde další?

Sledujte:

 

Připomínky mi pište do komentářů ↓

Fixní postranní panel

Jak vytvořit fixovaný banner?

JavaScriptové řešení prvku, který při rolování zůstane stále viditelný.

Aktivování/deaktivování okna

Zachycení aktivování a deaktivování okna v JS

V JavaScriptu lze relativně snadno reagovat na aktivování nebo deaktivování okna/záložky/tabu.

Baterka v CSS a JavaScriptu

Vytvoření efektu baterky v CSS a JS

Jak jednoduše vytvořit na stránce efekt baterky? Tedy ztmavit web a prohlížet ho jakýmsi průzorem.

Test existence obrázku JavaScriptem

Ověření existence obrázku pomocí JS

Jak JavaScriptem ověřit existenci obrázku?

Načtení obrázku, až když je potřeba

Zpožděné načtení obrázku, až když je potřeba

Kromě potřeby nahrát obrázek dopředu (preload), aby byl v době použití 100% připravený, může být potřeba opačná – načíst jej, až v momentě, kdy je potřeba. Z důvodu nemrhání datovým přenosem.

Komentáře