用js window.open在新窗口中打开链接,关于设置URL地址设置为变量的问题

JavaScript034

用js window.open在新窗口中打开链接,关于设置URL地址设置为变量的问题,第1张

你明明已经把href传到openwin方法中了,但是你没有接收,把openwin改下<br>function openwin(url) {<br>alert(url)//获取不到href属性<br>window.open (url,"newwindow","height=600,width=800") }

在浏览器的安全机制里,非用户触发的window.open(url)来打开新的链接方法是会被拦截的。(window.open(url,”_self”)改变当前的窗口是可以生效的)。

只有直接使用js调用 window.open(url)尤其是ajax请求回调或异步回调之后调用,打开新窗口时是会被拦截。常见解决方法:

1. 在超链接里加入onclick事件

<a href="javascript:void(0)" onclick="window.open(url)"></a>

2. 延迟打开

setTimeout('window.open(url)', 500)注意, 延迟时间不能太短 否则也会被拦截

3. 通过JS打开新窗口会被拦截,换一种实现方式

var newwindow=window.open('_blank')// 先打开页面

newwindow.location='http://www.xxxx.com'// 后更改页面地址

以下是js的点击触发事件,是用户触发,所以不会被拦截:

ele.onClick = function() {

    window.open('http://xxx.com')

})

第一步:通过点击事件,打开新窗口,并且传递参数

state.href('content.checkFinalTrial')

window.open(url+'?id='+data.id+'&type=1')

}

注:点击后需要直接调用window.open(),如果在ajax获取成功后再打开窗口,那么浏览器会阻止新窗口打开

第二步:通过$location.search()获取通过新窗口url传递的参数,并且利用参数进行ajax请求获取数据

$location.search().id

$location.search().type

第三步:关闭新窗口,并且调用父窗口(指打开新窗口的前一窗口)的事件

window.close()

opener.$('.searchBut2').click()

//window.opener.location.reload(),刷新原网页