当前位置: 首页 > Web前端 > HTML

解决方法_0

时间:2023-04-02 17:40:53 HTML

使用window.open打开新窗口被浏览器屏蔽问题描述:直接使用window.open('//www.baidu.com','_blank');在代码中将被浏览器窗口拦截。原因:浏览器为了维护用户安全和体验,直接在JS(url,"_blank")中使用window.open打开新链接会被屏蔽。通常项目需要在ajax异步请求完成后打开一个新的链接。下面提供了几种解决方案。解决方案一、最常用的(ajax异步请求成功后打开新窗口)//先在ajax函数之前打开新窗口,然后加载url$('#btn').click(function(){//打开页面,这里最好使用提示页面varnewWin=window.open();newWin.document.body.innerHTML="Loading......";$.ajax({url:'www.###.com',success:function(url){//重定向到目标页面newWin.location.href=url;}})});2.使用标签跳转可以解决大部分浏览器兼容性问题,但是这种方式不适合在ajax异步请求回调中开新窗口,ajax异步请求完成后调用无效(用户点击事件触发))functionnewWin(url){//新窗口打开vara=document.createElement('a');a.setAttribute('href',url);a.setAttribute('style','display:none');a.setAttribute('target','_blank');文档.body.appendChild(a);a.点击();a.parentNode.removeChild(a);};document.body.addEventListener('click',function(){newWin('http://www.baidu.com');});