使用js分解url地址参数

使用split函数分别分割,先以"?"分割,再以"&",最后再以“=”,并将之存入一个对象

示例的地址参数为:

http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23
<!DCOTYPE>
<html>
	<head>
		<title>分解url</title>
		<script src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
		<script>
	$(function(){
		$('.btn').click(function(){
            let firsturl = $('.url').text().split('?');
			      let urlobj ={};
			      let secondurl = firsturl[1].split('&');
			      for(let i=0;i<secondurl.length;i++){
			      	   let thirdurl = secondurl[i].split('=');
			      	   urlobj[thirdurl[0]] = thirdurl[1];
			      	}
			      	console.log(urlobj);
			      })
           })
  </script>
	</head>
	<div class="url">http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23</div>
	<button class="btn" >分解</button>
</html>

============================分割线=======================

关于上述的加载的jQuery文件,有integrity属性和crossorigin属性?那么他们都分别代表什么呢???

integrity

它相当于是用来校验加载的cdn文件是否被人篡改了。通过比对两次的签名,如果被人篡改了(比如说,运营商劫持加了广告等),那么两次的签名比对不成功,就不会执行该js文件。像图中代码的jQuery文件就不会执行,某些网站的功能就无法实现。

当然为了保证网站的稳定性,可以增加一个B计划(当失败时,使用本站的资源文件):

<script crossorigin="anonymous" integrity="sha256-xxxx" src="http://cdn.example.com/js/jquery.js"></script>
<script>
if(!window.jQuery) {
    document.write('<scr' + 'ipt src="/js/jquery.js"></scr' + 'ipt>');crosorgin属性
}
</script>
crossorigin

通常我们使用window.onerror来捕获js脚本的错误信息。

但是对于跨域调用的js脚本,onerror事件只会给出很少的报错信息:error: Script error.

这个简单的信息很明显不足以看出脚本的具体错误,所以我们可以使用crossorigin属性,使得加载的跨域脚本可以得出跟同域脚本同样的报错信息:
<script crossorigin  src="http://www.lmj.com/demo/crossoriginAttribute/error.js"></script>
如果是这样,www.lmj.com的服务器必须给出一个Access-Control-Allow-Origin的header,否则无法访问此脚本。

crosorgin属性




猜你喜欢

转载自blog.csdn.net/qq_36626755/article/details/79880270