js 跳转方法

JavaScript013

js 跳转方法,第1张

1、跳转链接 在当前窗口打开

window.location.href=" http://www.baidu.com "

等价于<a href="baidu.com" target="_self">go baidu</a>

2、跳转链接 在新窗口打开

window.open(" http://www.baidu.com ")

等价于 <a href="baidu.com" target="_blank">go baidu</a>

3、跳转链接 返回上一页

window.history.back(-1)

4、跳转链接

self.location.href="baidu.com"

self 指代当前窗口对象,属于window 最上层的对象。

location.href 指的是某window对象的url的地址

self.location.href 指当前窗口的url地址,

去掉self默认为当前窗口的url地址,一般用于防止外部的引用

top.location.href:为引用test.html页面url的父窗口对象的url

如果你的网页地址是:[ http://www.a.com ,]别人的是[ http://www.b.com] ,

他在他的页面用iframe等框架引用你的[ http://www.a.com] ,那么你可以用:

if``(top.location.href!=self.location.href){

location.href=``"http://www.a.com"``

}

来转向你的页面,top指代的是主体窗口,这里top.location.href返回[ http://www.b.com]

最近项目遇到一个功能,对话框中的内容可能会包含链接,需要识别并可直接点击,对方的对话框内容是后台返回的数据。

第一次脑中的想法是找到内容中的链接摘出来...,有点想偏了,因为看到返回的内容中的链接是有<a>标签,所以只需要利用框架中可以直接识别html标签的服务或指令就可以。vue项目中直接使用v-html就可以解析

在angular项目中没有类似v-html的指令,需要借助$sce服务的trustAsHtml(),

sce服务:因为如果在angularjs中绑定的数据有html标签时,如上面的<h1>,会被angularjs认为是不安全的而自动过滤掉,为了保留这些标签就需要开启非安全模式,这是非常危险的。sce是angularJS自带的安全处理模块,因此需要$sce.trustAsHtml()方法将数据内容以html的形式解析并返回。

ng-bind-html指令是通过一个安全的方式将内容绑定到HTML元素上,该属性依赖于$sanitize,需要在项目中引入angular-sanitize.js文件,并在module定义时注入该服务ngSanitize。

如果后台返回的数据的链接不是a标签,只是普通的 www.cnblogs.com 这种的字符串,我们的处理方式,需要利用正则先对它处理,给他加上a标签。

end!