如何打开新页面

<a> 标签的 target 属性规定在何处打开链接文档,具体取值如下:

描述
_blank 在新窗口中打开被链接文档。
_self 默认。在相同的框架中打开被链接文档。
_parent 在父框架集中打开被链接文档。
_top 在整个窗口中打开被链接文档。
framename 在指定的框架中打开被链接文档。

js语句控制:

window.open(URL,name,features,replace),方法用于打开一个新的浏览器窗口。 

参数

描述

URL

一个可选的字符串,声明了要在新窗口中显示的文档的 URL。如果省略了这个参数,或者它的值是空字符串,那么新窗口就不会显示任何文档。

name

一个可选的字符串,该字符串是一个由逗号分隔的特征列表,其中包括数字、字母和下划线,该字符声明了新窗口的名称。这个名称可以用作标记 <a> 和 <form> 的属性 target 的值。如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而只是返回对指定窗口的引用。在这种情况下,features 将被忽略。

 features 

一个可选的字符串,声明了新窗口要显示的标准浏览器的特征。如果省略该参数,新窗口将具有所有标准特征。在窗口特征这个表格中,我们对该字符串的格式进行了详细的说明。

replace

 

一个可选的布尔值。规定了装载到窗口的 URL 是在窗口的浏览历史中创建一个新条目,还是替换浏览历史中的当前条目。支持下面的值:

true - URL 替换浏览历史中的当前条目。

false - URL 在浏览历史中创建新的条目。

  

location: 保存当前窗口正在打开的url地址的对象,只能在当前窗口打开新页面,有如下方法:

         可后退(js语句运行完就会跳转,通过a标签的javascript协议也可)

             location="url";

             location.href="url";

             location.assign("url");

          不可后退:

             location.replace("url");

             location.reload(true/false): 刷新(如果之前由表单提交数据,刷新时会再次提交,此时document.referrer会和当前url相同;按F5时document.referrer为之前页面的地址)

                true: 总重新从服务器下载文档; false: 默认值。如果服务器上文档的更新时间,在上次下载后未改变,则直接从缓存中获取文档。

location的hash部分改变,只在当前页面发生跳转,不会认为是新的url地址而重新发送请求。这也是很多单页应用实现路由跳转的基础。
location的query部分改变,浏览器认为是新的url地址,会重新发送请求。query不同的url会对应不同的缓存,可以依次来缓存ajax。

实例:中英文版本切换

<a href="javascript:window.location=window.location.href.split('?')[0]+'?lang=zh-cn';" >[中文版]</a>
<a href="javascript:window.location.search='?lang=en-us';" >[英文版]</a>
//通过链接跳转会丢失不能传递表单数据。可以用location.reload()方法,将简单数据放入cookie中。
以上皆为个人理解,如有错误之处,欢迎留言指正。
原文地址:https://www.cnblogs.com/kevin2chen/p/6386105.html