PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JavaScript: URL change und Parameter


Gast
2009-04-14, 02:03:01
Ich möchte gern mittels JavaScript im onChange Event eines Dropdown-Menüs die URL ändern, genauergesagt einen URL-Parameter, nennen wir ihn 'seite'.
Anders ausgedrückt:
http://www.meineseite.de/?seite=1
soll z.B. auf
http://www.meineseite.de/?seite=5
gewechselt werden.

Soweit hab ich das auch, ganz einfach mit einem
location.href = "?seite="+seite;

Nun kann (muss aber nicht) es jedoch vorkommen, dass die URL noch weitere Parameter (nennt man die so? Argumente?) enthält, die bei dem Wechsel allerdings nicht verloren gehen dürfen.

Konkret heißt das:
wenn ich vorher auf
http://www.meineseite.de/?x=25 ODER auf http://www.meineseite.de/?seite=1&x=25
war, soll eben dann auf
http://www.meineseite.de/?seite=5&x=25
geändert werden.

Leider sind meine JavaScript-Kenntnisse reichlich begrenzt und durch Google habe ich leider auch keine Lösung für speziell dieses Problem gefunden.

Wie mache ich das also?

DanMan
2009-04-14, 02:44:25
Probier's damit:
location.href = location.href+'deinQueryString';
Mit location.search kannst du auch auf die Parameter direkt zugreifen: http://de.selfhtml.org/javascript/objekte/location.htm#search

Gast
2009-04-14, 12:58:50
Probier's damit:
location.href = location.href+'deinQueryString';
Naja, dann hat man aber ein Problem, wenn "seite=" schon als Parameter vorhanden ist, denn dann fügt es ihn so mehrmals hinzu bei jedem Wechsel, was ja auch nicht Sinn der Sache sein kann.

Mit location.search kannst du auch auf die Parameter direkt zugreifen: http://de.selfhtml.org/javascript/objekte/location.htm#search
Das ist schonmal interessant.
Ich habe es jetzt so gelöst:
if(window.location.search == "")
location.href = location.href + "?seite="+seite;
else {
if(location.href.indexOf("seite=") > -1)
location.href = location.href.replace(/seite=[^&]+/, "seite="+seite);
else
location.href = location.href + "&seite="+seite;
}