Autor Zpráva
Monkeys
Profil *
Zdravim

napisal som si tento jednoduchy javascript na odstranenie hodnoty z parametru
ale problem je ze po spusteni sa mi stale dokola a dokola refreshuje stranka.

Ako to mam vyriesit


function replaceUrl(){
var url = window.location.search.substring(1);
var path = url.split("&");
var newPath = path[0].split("=");
var newValue = newPath[0] + "=";

var urlPath = window.location.href.split("?");

var final = urlPath[0] + "?" + newValue + "&" + path[1];

window.location.replace(final);
return false;
}
replaceUrl();

dakujem
M.
Tori
Profil
Monkeys:
po spusteni sa mi stale dokola a dokola refreshuje stranka.
A co by to mělo dělat jiného? Bez znovunačtení celé stránky můžete javascriptem změnit jen kotvu.
Monkeys
Profil *
Trochu som natom popracoval
Okresal som kod:

function replaceUrl(paramName, paramValue){
var url = window.location.href.split("?");
var prefix = url[1].match(paramName) + "=";
var path = url[0] + "?" + prefix + paramValue + "&" + url[1].split("&")[1];
//alert(path);
//window.location.replace( path );
}
replaceUrl("vyraz", "aaa");

no chcem z url: 
http://nieco/zoznam-sluzieb/search?vyraz=test&strankovanie=20
na
http://nieco/zoznam-sluzieb/search?vyraz=&strankovanie=20

M.


Vyriesil som to:

Moja chyba myslel som ze ak dam volanie funkcie na priamo ze to bude fungovat. (ale sposobovalo to to nekonecne refreshovanie)
volanie funkcie som nakoniec vlozil do submitu ako onclick="replaceUrl('vyraz', 'test');"


M.
Davex
Profil
Zacyklení se dá zabránit tak, že se bude přesměrovávat pouze na jinou adresu než je právě načtená.
IdemeNaHavaj
Profil
Monkeys AKo to máš aj ja to chcem a nejde mi to
Davex
Profil
IdemeNaHavaj:
Což udělat nahrazení hodnoty parametru v adrese asi takhle nějak? Moc se mi nelíbí, že je to zrovna JavaScriptem, ale proč by ne.

<script>
function replaceParam(name, value) {
  var co = new RegExp("([?&])(" + encodeURIComponent(name) + "=)[^&]+");
  var cim = "$1$2" + encodeURIComponent(value);
  var kam = document.location.search.replace(co, cim);
  if (kam !== document.location.search) {
    document.location.replace(kam);
  }
}

replaceParam("vyraz", "");

</script>

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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