标签:undefined split name elf spl use sub 固定 amp
1.窗口操作
1.在当前窗口打开,可后退
HTML: <a href="url" target="_self">
JS: open("url","_self")
2.在当前窗口打开,禁止后退
JS: location.replace("新url") //用新url代替history中当前地址
3.在新窗口打开,可打开多个
HTML: <a href="url" target="_blank">
JS: open("url","_blank")
4.在新窗口打开,只能打开一个
HTML: <a href="url" target="自定义的窗口名">
JS: open("url","自定义的窗口名")
原理: target属性其实是为新窗口指定内存中唯一的窗口名,浏览器规定,同一时刻,同名窗口只能打开一个,后打开的会覆盖先打开的
_self :自动使用当前窗口的name
_blank :不指定窗口名, 每打开一个窗口,浏览器会自动随机生成内部窗口名
关闭窗口: /*window.*/close();
练习:对上述打开窗口的四种方式分别练习
<script>
function open1(){
open("http://www.baidu.com","_self");
}
function open2(){
location.replace("http://www.baidu.com");
}
function open3(){
open("http://www.baidu.com","_blank");
}
function open4(){
open("http://www.baidu.com","baidu");
}
</script>
<a href="http://www.baidu.com" target="_self">在当前窗口打开,可后退</a>
<a href="javascript:open1()">在当前窗口打开,可后退(JS)</a>
<br>
<a href="javascript:open2()">在当前窗口打开,不可后退(JS)</a>
<br>
<a href="http://www.baidu.com" target="_blank">在新窗口打开,可打开多个</a>
<a href="javascript:open3()">在新窗口打开,可打开多个(JS)</a>
<br>
<a href="http://www.baidu.com" target="baidu">在新窗口打开,只能打开一个</a>
<a href="javascript:open4()">在新窗口打开,只能打开一个(JS)</a>
2.history
定义:保存当前窗口打开后,成功访问过的url的历史纪录栈
操作:
前进:history.go(1)
后退:history.go(-1) history.go(-2)
刷新:history.go(0)
3.location
定义:保存当前窗口正在打开的url地址的对象
属性:
.href :获取或设置完整的url地址
.protocol :协议
.host :主机名+端口号
.hostname :主机名
.port :端口号
.pathname :相对路径
.search :查询字符串参数
.hash :锚点地址
方法:
1.在当前窗口打开,可后退
location="url"
2.在当前窗口打开,禁止后退
location.replace("新url")
3.刷新
普通刷新:优先从缓存中获取资源,缓存没有或过期,才去服务器找
F5
history.go(0)
location.reload()
强制刷新:无论有没有缓存,都强制从服务器获取新资源
location.reload(true)
练习:将search转化为对象形式
//?username=zhangdong&pwd=123456&favs=running&favs=swimming&favs=basketball function search2Obj() { var obj = {}; if (location.search) { var arr = location.search.slice(1).split("&"); //arr:[username=zhangdong,pwd=123456,...] for (var str of arr) {//遍历arr中每个子字符串 var subs = str.split("="); var key = subs[0]; var value = subs[1]; //subs[username, zhangdong] if (obj[key] === undefined) obj[key] = value; //.key=>["key"] key被写死为固定的字符串 //[key] key是动态变化的变量 else { obj[key] = [].concat(obj[key], value); //将属性的旧值和新值,拼到一个共同的数组中,然后将数组保存到新的属性中 } } } return obj; } var obj = search2Obj(); console.log(obj);
标签:undefined split name elf spl use sub 固定 amp
原文地址:https://www.cnblogs.com/hourglas/p/14110113.html