赞
踩
当我们想在当前页面打开一个新页面时,首先想到的就是window.open,但是这个方法在很多情况下都会被浏览器拦截,所以我们通常会使用a标签去代替这种方法。但是有的时候,我们可能不需要点击某个元素去触发,又或者我们当前的页面是iframe子页面,那这个时候我们应该怎么样去解决这个问题呢?
如果我们没有办法在html中正常使用a标签来代替window.open,我们可以使用下面两种 动态创建一个a标签对象,通过里面自带的target执行跳转的方法:
function newWin(url, id) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('target', '_blank');
a.setAttribute('id', id);
// 防止反复添加
if(!document.getElementById(id)) {
document.body.appendChild(a);
}
a.click();
}
function openUrl(url) {
var a = $('<a href="'+url+'" target="_blank"></a>')[0];
var e = document.createEvent('MouseEvents');
e.initEvent('click', true, true);
a.dispatchEvent(e);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。