有些情况下我们不使用a标签要打开一个新窗口,可以window.location.href = url,但是这样打开是在当前窗口打开,如果使用window.open(),在非用户触发的情况下是会被浏览器安全机制拦截的。

$(".btn").on("click",function(){window.open(url);
})
这个是生效的,因为是用户触发的
$(".btn").on("click",function(){$.post("url",function(data){if(data = "10000"){window.open(url);}})
});
这样是不生效的,会被浏览器所拦截,在苹果系统下是提示都没有,一般浏览器有的直接也可以打开,有的会提示出现拦截窗口,需要手动打开。

解决办法:

$(".j_addKejian").on("click",function(){$.post("getcampusname.php",function(data){var data = JSON.parse(data);var winForsafari;if(data.code == "10000"){var dataList = data.data;var dataListlen = dataList.length;var btnHtml = '';var schoolId;for(var i = 0;i<dataListlen;i++){btnHtml += '<span class="setUpkejian_btn" schoolId = "'+dataList[i].id+'">'+dataList[i].name+'</span>';}G.alert({"title":"提示","pclass":"addkejian","css": {width : 840},"text":btnHtml,"init":function(){  //事件预留区域$(".setUpkejian_btn").on("click",function(){$(this).addClass("cur").siblings().removeClass("cur");schoolId = $(this).attr("schoolId");});},"alert":function(){  //点击确认this._remove();winForsafari = window.open("", "_blank");  //解决非用户触发情况下不生效问题winForsafari.location.href = ('createtask.php?create=1&campusid='+schoolId);}});}else{winForsafari = window.open("", "_blank");  //解决非用户触发情况下不生效问题winForsafari.location.href = 'createtask.php?create=1';//改变页面的 location}});
在请求数据之前先定义一个变量,然后再去改变窗口的location就可以了。

补:

再换一种方式,在页面上增加a标签

//打开新窗口(防止window.open被拦截)
var openNewWindow = function(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();
}

然后直接调用就可以了,传上要打开的新地址,和a标签定义一个id
再次补充:上面这个定义的方法如果放在ajax回调函数中依然是不生效,最后的最后解决办法只能是来控制点击的按钮了,改变href,这样才能更好的打开,不会被拦截。










												

window.open不生效相关推荐

  1. 微信小程序全局配置文件app.json中window:backgroundColor“不生效”

    那些年我们一起踩过的坑~ 今天说一下微信小程序全局配置文件app.json中window的backgroundColor属性,设置之后发现没效果. 查了资料发现原来这个backgroundColor属 ...

  2. linux监听火狐浏览器关闭,火狐浏览器window.close()关闭无效

    我想很多开发者遇到过这样一个比较容易的问题:就是在火狐浏览器中无法关闭当前页面的事情.其实这是火狐浏览器为了安全起见,对他自己属性进行设定了特殊值导致的.如下就是解决方法: 解决javascript: ...

  3. vue组件mounted中window.onresize无效

    一.问题描述 在开发中发现,有两个vue组件中mounted中都用了window.onresize,但是在其中一个组件中正常,在另一个组件中无效. 二.问题分析 我注意到组件A是组件B的父组件,组件A ...

  4. window.onresize和window.addEventListener

    vue中在mounted中window.onresize不生效是因为: 引用的父组件和子组件都使用了window.onresize以至于一个window.onresize失效. 把window.onr ...

  5. threejs 绘制球体_ThreeJs 绘制点、线、面

    所有的三位物体都是由点构成,两点构成线,三点构成面,ThreeJs又如何绘制出点.线.面呢 ? 在ThreeJs中: 模型由几何体和材质构成 模型以何种形式(点.线.面)展示取决于渲染方式 1. 几何 ...

  6. created写法_在vue中created、mounted等方法使用小结

    created:html加载完成之前,执行.执行顺序:父组件-子组件 mounted:html加载完成后执行.执行顺序:子组件-父组件 methods:事件方法执行 watch:watch是去监听一个 ...

  7. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置

    目录 监控系统状态 监控网卡流量 监控IO性能 查看系统进程 查看网络状态 Linux下抓包 Linux网络相关 监控系统状态 w/uptime查看系统负载 [root@zyshanlinux-01 ...

  8. HTML5---新增客户端储存

    H5-新增API 本地存储 随着互联网的快速发展,基于网页的应用越来越普遍, 同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据, HTML5规范提出了相关解决方案. 主流的浏 ...

  9. apicloud菜鸟教程_APICloud 对象之 Method

    //openWin 打开window 若 window 已存在,则会把该 window 显示到最前面 api.openWin({ name:'page1', url:'./page1.html', p ...

最新文章

  1. TClientDataSet[28]: 读写其他格式的 XML 文件
  2. SDUT 2860-生日Party(BFS)
  3. 带线的无限级下拉树列表-完整示例篇
  4. SP1811-Longest Common Substring【SAM】
  5. 虚拟网站禁用php,虚拟主机php程序fsockopen函数被禁用
  6. CCF NOI1058 统计单词
  7. 学习项目管理PRINCE2有什么用??
  8. LeetCode之3Sum Closest(Kotlin)
  9. 5.Scalal语法03 - 函数
  10. easyui tree json php,easyui tree json
  11. remix下ballot.sol调试
  12. 图片缩放库 Photoview 和 Gif 控件 GifView 的使用
  13. Java学习记录 类的高级特性篇
  14. 搞清线程池的几种实现方式
  15. selenium入门安装及环境搭建
  16. VMware12卸载之后安装其他版本导致回滚操作的解决方法之一
  17. ruby中uniq和uniq!的区别
  18. android 蓝牙串口连接不上,安卓手机搜索不到蓝牙模块HC-06,是怎么回事?
  19. docker国内镜像
  20. linux 虚拟专用网络设置,centos安装配置pptp 虚拟专用网络服务器步骤分享

热门文章

  1. How to reprint others' articles
  2. javascript基础入门知识点整理
  3. 一年一度的阿里日 祝福阿里
  4. 江西明月山景区力争年内开通旅游包机
  5. CVPR2023对抗攻击相关论文
  6. 初始化56个民族下拉框
  7. 数据库mysql期末判断题_高校邦_MySQL数据库高级技术_期末答案
  8. 会计常用的智能财税软件是什么?
  9. 基于springboot的食品二维码溯源系统
  10. php 老黄历算法,老黄历用语解释