Heute habe ich auf die Ersetzung bestimmter Parameter in der URL durch JavaScript gestoßen.
Kopieren Sie den Code -Code wie folgt:
// Analyse URL
Funktion parseurl (url) {
var a = document.createelement ('a');
a.reif = url;
Zurückkehren {
Quelle: URL,
Protokoll: A.Protocol.Replace (':', ''),
Gastgeber: a.hostname,
Hafen: A.Port,
Abfrage: A.Search,
Parameter: (function () {
var return = {},
Seg = A.Search.Replace (/^/?/, ',' ') .split (' & '),,
Len = Seg.Length, i = 0, s;
für (; i <len; i ++) {
if (! Seg [i]) {Fortsetzung;}
S = SEG [i] .Split ('=');
Ret [s [0]] = s [1];
}
Return Ret;
}) () ,,,
Datei: (a.pathName.match (/// ([^//?#]+) $/i) || [, ''] [1],
Hash: a.hash.replace ('#', ''),
Pfad: a.pathname.replace (/^([^//])/, '/$ 1'),
Relativ: (a.href.match (/tps?
Segmente: a.pathname.replace (/^///, '') .split ('/')
};
}
// Ersetzen Sie den gleichnamigen Parameterwert in Myurl
Funktion ersetzensurlparams (Myrl, NewParams) {
/*
für (var x in myrl.params) {
für (var y in Newparams) {
if (x.tolowerCase () == y.tolowerCase ()) {) {
myurl.params [x] = newparams [y];
}
}
}
*/
für (var x in NewParams) {
var hasmurlparams = false;
für (var y in myrl.params) {
if (x.tolowerCase () == y.tolowerCase ()) {) {
myurl.params [y] = newparams [x];
HasInmyurlparams = true;
Brechen;
}
}
// Der Parameter, den sich herausstellte, dass es hinzugefügt wurde
if (! hasinmyurlparams) {
myurl.params [x] = newparams [x];
}
}
var _retult = myurl.protocol + ": //" + myurl.host + ":" + myurl.port + myurl.path + "?" ;;;;;;;;;;
für (var p in myurl.params) {
_Result + = (p + "=" + myurl.params [p] + "&");
}
if (_result.substr (_result.length -1) == "&") {{{{{{
_Result = _result.substr (0, _result.length -1);
}
ifrl.hash!
_Result + = "#" + myurl.hash;
}
Return _result;
}
// Hilfsausgabe
Funktion w (str) {
document.write (str + "<br>");
}
var myurl = parseurl ('http://abc.com:8080/dir/index.html?id=255&m=hello#top'););
w
w
w
w ("myurl.query =" + myurl.query) // = '?
w ("myurl.params =" + myurl.params) // = Object = {id: 255, m: Hallo}
w
w ("myurl.segmente =" + myurl.segmente) // = array = ['dir', 'index.html']]]]
w
w
w ("myurl.source =" + myurl.source) // = 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'
var _newurl = ersatzlparams (myrl, {id: 101, m: "welt", Seite: 1, "Seite": 2});
w ("<br> Neue URL ist:")
w (_newurl);