วันนี้ฉันพบว่าจำเป็นต้องเปลี่ยนพารามิเตอร์บางอย่างใน URL ด้วย JavaScript
คัดลอกรหัสรหัสดังนี้:
// url วิเคราะห์
ฟังก์ชั่น parseurl (url) {
var a = document.createElement ('a');
A.href = url;
กลับ {
ที่มา: URL
โปรโตคอล: a.protocol.replace (':', ','),
โฮสต์: a.hostname,
พอร์ต: a.port,
คำถาม: A.Search,
params: (function () {
var return = {}
seg = a.search.replace (/^/?/, ',' ') .split (' & ')
len = seg.length, i = 0, s;
สำหรับ (; i <len; i ++) {
if (! seg [i]) {ดำเนินการต่อ;}
s = seg [i] .split ('=');
ret [s [0]] = s [1];
-
return ret;
-
ไฟล์: (a.pathname.match (/// ([^//?#]+) $/i) || [, ''] [1],
แฮช: a.hash.replace ('#', '')
เส้นทาง: a.pathname.replace (/^([^//])/, '/$ 1')
ญาติ: (a.href.match (/tps ?: //////////////ife+(.+)/) || [, ''] [1] ,,,
เซ็กเมนต์: A.PathName.replace (/^///, '') .split ('/')
-
-
// แทนที่ค่าพารามิเตอร์ของชื่อเดียวกันใน MyURL
ฟังก์ชั่นแทนที่อูรัลพารา (myrl, newparams) {
-
สำหรับ (var x ใน myrl.params) {
สำหรับ (var y ใน newparams) {
if (x.toLowercase () == y.toLowerCase ()) {) {
myurl.params [x] = newparams [y];
-
-
-
-
สำหรับ (var x ใน newParams) {
var hasmurlparams = false;
สำหรับ (var y ใน myrl.params) {
if (x.toLowercase () == y.toLowerCase ()) {) {
myurl.params [y] = newparams [x];
hasinmyurlparams = true;
หยุดพัก;
-
-
// พารามิเตอร์ที่เพิ่มขึ้นเพื่อเพิ่ม
ถ้า (! hasinmyurlparams) {
myurl.params [x] = newparams [x];
-
-
var _retult = myurl.protocol + ": //" + myurl.host + ":" + myurl.port + myurl.path + "?" ;;;;;;;;;;;;;;;;;
สำหรับ (var p ใน 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;
-
กลับ _result;
-
// เอาต์พุตเสริม
ฟังก์ชั่น 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) // = '? id = 255 & m = สวัสดี'
w ("myurl.params =" + myurl.params) // = object = {id: 255, m: สวัสดี}
W
w ("myurl.segments =" + myurl.segments) // = 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 = แทนที่ urlparams (myrl, {id: 101, m: "โลก", หน้า: 1, "หน้า": 2});
W ("<br> URL ใหม่คือ:")
W (_Newurl);