Naja fid remove extension
- Petr Parolek
- Člen | 455
Ahoj,
s Javascriptem mnohokrát zápasím. Nikde jsem nenarazil, jak přes Naju odstranit fid z url po redirectu. Pro nette.ajax.js existuje https://github.com/…move.ajax.js . Pomohl by mi někdo prosím?
- Martk
- Člen | 661
Jakmile proběhne refresh celé stránky (neajaxově), tak na to nepotřebuješ nic z naji. Dokonce bys nepotřeboval ani nette.ajax.js, protože jestli se nepletu, tak init se používá jen při nastartování. Stačí si z toho vyextrahovat logiku a tu následně použít čistě v javascriptu.
function removeFid(url, pos) {
url = url.substr(0, pos) + url.substr(pos + 9);
if ((url.substr(pos - 1, 1) === '?') || (url.substr(pos - 1, 1) === '&')) {
url = url.substr(0, pos - 1) + url.substr(pos);
}
return url;
}
setTimeout(function () {
var url = window.location.toString();
var pos = url.indexOf('_fid=');
if (pos !== -1) {
window.history.replaceState({}, null, removeFid(url, pos));
}
}, 3000);
Edit: Tohle jsem měl v plánu delší dobu, ale stále jsem to odkládal, tak tady je aktuálnější kód:
function removeSearchParamInUrlAndHistory(name) {
const url = new URL(window.location.toString());
if (!url.searchParams.has(name)) {
return;
}
url.searchParams.delete(name);
window.history.replaceState({}, null, url.toString());
}
setTimeout(() => removeSearchParamInUrlAndHistory('_fid'), 3000);
Editoval Martk (12. 3. 2022 12:29)