在使用jQuery進(jìn)行頁(yè)面跳轉(zhuǎn)時(shí),常會(huì)出現(xiàn)參數(shù)報(bào)錯(cuò)的情況,這通常是由于參數(shù)傳遞不正確導(dǎo)致的。
例如: //以下代碼是一個(gè)簡(jiǎn)單的跳轉(zhuǎn),并攜帶參數(shù)id window.location.; //嘗試獲取參數(shù)id var id = window.location.search.substring(1); //但是,發(fā)現(xiàn)獲取到的值為“123”加上其他一些字符,例如“123&callback=xxx”
上述代碼中,我們想要獲取的是id參數(shù)的值,但實(shí)際獲取到的結(jié)果卻是它與其他參數(shù)的組合。
這種情況的原因在于參數(shù)不正確的傳遞方式造成的。下面是幾種可能的出錯(cuò)情況:
- 沒(méi)有正確編碼參數(shù):使用encodeURIComponent()編碼參數(shù)可以保證跳轉(zhuǎn)時(shí)參數(shù)的正確傳遞。例如:
//編碼參數(shù)id var id = encodeURIComponent("123"); //跳轉(zhuǎn)頁(yè)面并攜帶參數(shù) window.location. + id;
- 使用“&”字符連接參數(shù):在傳遞多個(gè)參數(shù)時(shí),應(yīng)當(dāng)使用“&”字符連接參數(shù)。例如:
//攜帶參數(shù)id和name var id = "123"; var name = "John"; window.location. + id + "&name=" + name;
- 未正確獲取參數(shù)值:使用window.location.search獲取參數(shù)時(shí),應(yīng)當(dāng)使用split()方法將字符串分割后再獲取指定參數(shù)的值。例如:
//獲取id參數(shù)的值 var id = window.location.search.substring(1); id = id.split("=")[1];
通過(guò)以上方法,可以有效避免jQuery跳轉(zhuǎn)時(shí)參數(shù)報(bào)錯(cuò)的情況。