我嘗試了很久,還是失敗,就是想取得網址內的路徑名稱!
就如這頁的網址:
https://ithelp.ithome.com.tw/questions/10256928
我之前使用JS
var url = window.location.pathname;
document.getElementById("urlPathName").innerHTML = url;
但得到結果是
/questions/10256928
但我想要的結果只需要 "questions" 那個字(我的情況"長度不定"、文字包括"數字和英文字")!
questions
在網上找了很久,絕大部份網站,都避免談及取得淨 Path Name 的做法。而我的用途是想在頁面顯示出,我在那個路徑裡?但因為不是整條Pathname,所以不知有什麼方法去除"/"及不需要的其它部份。實際網址情況如下:
http://localhost/topics/2022/A/333/test/9999/
我想求每個pathname的做法 ???? ,本人不太懂得表達,請原諒!
取得 Base Pathname 的方式:
const segs = window.location.pathname.split('/').filter(Boolean);
segs; // ['questions', '10207148']
segs[segs.length - 2]; // 'questions'
但是,不太清楚您所指「求每個 Pathname 的做法」是什麼意思。
var query = window.location.search;
console.log("window.location.search:" + query);
//window.location.search:?id=ffd2823a-f739-4678-98b6-a4d7dfc482fa
//var query0 = window.location.search.substring(0);
console.log("window.location.search.substring(0):" + query0);
//window.location.search.substring(0):?id=ffd2823a-f739-4678-98b6-a4d7dfc482fa
var query1 = window.location.search.substring(1);
console.log("window.location.search.substring(1):" + query1);
//window.location.search.substring(1):id=ffd2823a-f739-4678-98b6-a4d7dfc482fa
function getQueryGetParams(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var idxVar = 0; idxVar < vars.length; idxVar++) {
var pair = vars[idxVar].split("=");
if (pair[0] == variable)
return pair[1];
}
return "";
}
如果沒有什麼例外狀況的話,下面這行的執行結果就是'questions'
window.location.pathname.split('/')[1]
全部路徑(陣列格式)
let pathSeg = window.location.pathname.split('/');
pathSeg.shift();
// 上面已經取得每個路徑的陣列,可以用forEach去執行想要的動作
pathSeg.forEach(......)
補充:如果網址中有 ?xxx=xxx
這種queryString的話可以一樣用split裁掉就好