js 截取网址表单提交内容并保存到对象中
问题:使用location对象将能获取到网页的url的get提交的一系列参数,并保存为对象
一般使用需要去获取到地址栏中的表单提交数据,并保存为对象方便使用
如图:
1、使用 location 对象能获取到本网页的url地址:
可以看到 location 对象提供了全部的url地址信息,这里需要的是表单的提交数据,可以使用到 search 就能获取到需要的表单信息。
2、直接使用location 对象获取到的中文数据是一串乱码 如下:
这里需要使用到一个函数 decodeURIComponent()
dataDom = window.decodeURIComponent(dataDom);
成功将中文乱码转换成正常显示的中文:
3、将得到正确的这一段字符放入对象中去
//1、获取到location对象的表单值
let dataDom = location.search;
// 2、将中文乱码转换成可识别中文
dataDom = window.decodeURIComponent(dataDom);
// 3、将 ? 删除掉
dataDom = dataDom.replace("?", "");
// 4、以&为区分将数据分组拆分到数组中去
let arr = dataDom.split("&");
//5、遍历这个新数组,【分组】将数据放入对象中去
let obj = {};
arr.forEach(function (v, i) {
//6、将里面的数组单个元素,再次进行拆分为一个新的单个数组
let newarr = arr[i].split("=");
//7、分别将数组的第一和第二个元素 作为 对象的属性名和属性值
obj[newarr[0]] = newarr[1];
});
//打印输出一下
console.log(obj);
运行结果如下:
- 这里主要是在遍历数组的操作里,将数组元素再次进行一次拆分,按照新数组的第一个元素对应对象属性名,第二个元素对应属性值的特点。