首页 > Windows开发 > 详细

window.open(url)打开链接被浏览器拦截解决方案

时间:2021-01-26 15:21:53      阅读:27      评论:0      收藏:0      [点我收藏+]

浏览器为了维护用户安全和体验,禁止在JS中直接使用window.open(url)来打开新的链接(window.open(url,”_self”)改变当前的窗口是可以生效的)。下面采用几种变通方法解决:

1.表单提交的方式

var form = document.createElement(‘form‘);
form.action = ‘www.baidu.com?id=1‘;
form.target = ‘_blank‘;

form.method = ‘POST‘;

document.body.appendChild(form);
form.submit();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这种方式,如果需要传递参数时,需要使用 POST 方法, 默认的 GET 方法无法传递参数。也就是新页面的url中没有参数部分。

另外,Ajax下载文件时也是用form 表单来模拟下载。

2.直接将打开窗口操作放在按钮/链接的onclick事件中

如:

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

3.延迟这个打开操作

如:

setTimeout(‘window.open(url);‘, 500); // 延迟时间不能太短 否则也会被拦截
  • 1

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

var tempwindow=window.open(‘_blank‘); // 先打开页面
tempwindow.location=‘http://www.baidu.com‘; // 后更改页面地址

window.open(url)打开链接被浏览器拦截解决方案

原文:https://www.cnblogs.com/Fooo/p/14330277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!