0004-JavaScript常用方法
阿新 • • 發佈:2018-12-18
使用ES6風格,變數宣告多用let const。
1、獲取URL絕對路徑(去掉域名與引數)
function getUrlAbsolutePath() { const url = location.href, arrUrl = url.split("//"), start = arrUrl[1].indexOf("/"); let relUrl = arrUrl[1].substring(start); //擷取從start開始到結尾的所有字元 if (relUrl.indexOf("?") != -1) { relUrl = relUrl.split("?")[0]; } return relUrl; }
2、獲取URL中的引數
function getParams() { const url = location.search; //獲取url中"?"符後的字串 let theRequest = {}; if (url.indexOf("?") != -1) { const str = url.substr(1), strs = str.split("&"); for(let i = 0; i < strs.length; i ++) { let arrParam = strs[i].split("="); theRequest[arrParam[0]] = unescape(decodeURIComponent(arrParam[1]));//中文字元 } } return theRequest; }
3、獲取指定的引數
function getQueryString(name) {
const reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
const r = location.search.substr(1).match(reg);
if (r) {
return unescape(r[2]);
}
return null;
}
4、Ajax請求顯示載入中
$.ajax({ type: "post", url: loadurl, async: true, t: new Date().getTime(), //時間戳 success(data) { $("#test").html(data); } beforeSend() { $("#test").html('載入中...'); } });
5、字串大小長度獲取(支援中文)
在字串沒有中文的情況用str.length直接獲取,是可以的。因為中文佔兩個位元組,所以在包含中文字串的情況下,這樣是不正確的。
function getRealLen(str) {
///<summary>獲得字串實際長度</summary>
///<param name="str">要獲取長度的字串</param>
let realLength = 0,
len = str.length,
charCode = -1;
for (let i = 0; i < len; i++) {
let charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128)
realLength += 1;
else
realLength += 2;
}
return realLength;
};
6、window.open開啟之後彈窗後再關閉重新整理本頁面
使用window.open開啟彈窗後,在彈窗頁面關閉時,上級頁面重新整理。(注:此函式放置在父頁面中)
function openWin(url,text,winInfo){
const winObj = window.open(url,text,winInfo);
let loop = setInterval(function() {
if(winObj.closed) {
clearInterval(loop);
location.reload();
}
}, 1);
}