1、地址欄url中去掉所有參數,這個是純前端解決,很多時候頁面跳轉時候會選擇在url后面帶參數過去,(使用?&),方便傳也方便取,但是我們要做的是不要讓頁面的一些請求參數暴露在外面
正常項目工程中,前端都會封裝一個公共js,里面封裝一些公用的方法,如ajax請求封裝,獲取地址欄url參數封裝;
如某個頁面獲取地址欄url參數值 Util.getParam("參數A"):
中的
var Util = { getParam: function (paraName) { var search = document.location.search, reg = new RegExp("[?&]+" + paraName + "=([^&]+)"); if (search && reg.test(search)) { return decodeURIComponent(RegExp['$1']).replace(/\+/g, " "); } return null; }, }
要去掉url后面帶的參數:
在這個公共的都引用的js里面添加一個放參數的方法:
function insertParam(paramStr) { localStorage.urlParam=paramStr;//創建了localStorage對象,並設置了urlParam的值 }
和獲取參數的方法:
// 新的獲取參數的方式 getParam: function (paraName) { var search = localStorage.urlParam; var reg = new RegExp("[?&]+" + paraName + "=([^&]+)"); if (search && reg.test(search)) { return decodeURIComponent(RegExp['$1']).replace(/\+/g, " "); } return null; },
需要跳轉頁面並傳參數的頁面跳轉事件中:
insertParam('?reportorId='+row.id+'&index='+index); //調用Util這個公共js中的insertParam方法,設置參數,跳轉后的頁面獲取還是原來的一樣 title="編輯信息"; content=GLOBAL_CONFIG.webSiteRoot+'/main/editInfo.html'; self.open(title,content,area);
2、這樣改會造成一個不易發現的bug,就是新增和編輯如果是同一個頁面的話,先點了編輯,再新增,那么新增時候會帶有參數,所以就是要需要的地方新增操作時候清除
localStorage.urlParam中的值;