开不了的窗_____window.open

   window.open()是原来常用的新开窗口的方式,但是呢,现在会被大多数浏览器阻止掉,默认为是非用户意愿的打开窗口,即广告之类的。

但是通过a链接的事件来open是可以的,因为这样会认为是用户主观的要打开另一个窗口所以不予以拦截。

   关于如何解决被阻止的问题,网上有很多种方式,一直未加以实践。前段时间项目中存在这样的需求,当时使用了几种方式,但是未生效,最后

通过延迟更改location的方式终于解决掉了。下面结合实际讨论一下。

   1.a标签的直接事件,不会被拦截。代码如下: 

    links.on(‘click‘, function (e) {      e.preventDefault();      var _this = $(this);      window.open(‘/bookmerchant/fun/‘);  }

   2.ajax 请求之后,进行新开窗口的操作会被拦截掉,即使是a链接出发的事件。如下:

  self.addBtn.on(‘click‘, function (e) {     /*ajax请求略去*/    }).on(‘success‘, function (res) {            if (res.code == 200) {                var cusId = res.data.customerId;                window.open(‘/bookmerchant/fun/‘);  }。  此时的window.open()是不可行的。  网上看到的解决措施:  1.创建a标签然后,绑定事件,然后js触发。这种在我的实际操作中是同样被拦截的。  2.在请求之前新开标签window.open();然后请求接受之后更改location,这样是可以的。
var newTab=window.open(‘about:blank‘);/*ajax请求*/}).on(‘success‘, function (res) {        if (res.code == 200) {         newTab.location.href=‘/bookmerchant/fun‘;}  3.还有一种方式是新开标签window.open(),然后通过setTimeout()来延迟设置location,原理相同应该也是可行的(此处未实践,所以不敢说一定)。  4.通过form提交的方式进行跳转,同样未实践,不加评论。只是拿出来给大家一种提醒。 
            

         

时间: 2024-11-14 13:10:28

开不了的窗_____window.open的相关文章

人生,懂得相知,相惜包容之心不易。若灵犀一处,注定单一的风景,那就让生命于孤独中,开成一朵惊艳的花来,所有的资本,独倾城于自己!百度几下,你就知道,还得问百度

人生,懂得相知,相惜包容之心不易.若灵犀一处,注定单一的风景,那就让生命于孤独中,开成一朵惊艳的花来,所有的资本,独倾城于自己! ————题记 又是下雨的天气,青石板的湿气寒生,缝隙边的小草,漫步一春,一夏,一秋,于这冬天,仿佛还在执意某个角落,安定一个归属,定要等到霜雪满天,才肯凋谢! 若可,我愿是丁香般的女子,无须为了谁而忧怨,更无需丈量光阴给予的深浅,只管停泊江南的一席之地,为自己开一扇幽窗,与书共知己.风来且沐浴,月倚枕边书:雨临相对盏,醉赋宋唐风:再植一盆盆的兰草,便可举杯邀月兰生慧,

[转载] tcp数据重传时间细节探秘及数据中心优化

原文: http://weibo.com/p/1001603821691477346388 在数据中心网络内,机器之间数据传输的往返时间(rtt)一般在10ms以内,为此调内部服务的超时时间一般会设置成50ms.200ms.500ms等,如果在传输过程中出现丢包,这样的服务超时时间,tcp层有机会发现并重传一次数据么?如果设置成200ms以内,答案是没有机会,原因是linux系统下第一次重传时间等于传输的往返时间上至少加上200ms的预测偏差值,即如果rtt值是7ms,第一次重传超时时间至少是2

Ruby学习之对象模型

这两周工作内容较多,平时自己也有点不在状态,学的东西有点少了,趁着现在还有点状态,赶紧复习一下之前学习的Ruby吧. Ruby是我真正开始接触动态语言魅力的第一个语言,之前虽然也用过且一直用perl.python等脚本语言,但是只是作为unix shell的扩展(和工作有关),没有真正地审视动态语言的哲学.是<Ruby元编程>这本书,好像给我打开了一扇新世界的大门,书中介绍的每一个特性都让我兴奋地几乎跳起来,这就是学习的魅力吧. Ruby语言初探 由于是第一个Ruby的随笔,先简单介绍一下ru

extern用法总结!

extern 在源文件A里定义的函数,在其他源文件中是看不见的(即不能訪问).为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明: extern   函数原型: 这样,在源文件B里也能够调用那个函数了.     注意这里的用词差别:在A里是定义,在B里是声明.一个函数仅仅能(也必须)在一个源文件中被定义,可是能够在其他多个源文件中被声明.定义引起存储分配,是真正产生那个实体.而声明并不引起存储分配.打一个粗俗的例如:在源文件B里声明后,好比在B里开了一扇窗,让它能够看到A里的那个函数

SVN(TortoiseSVN)提交时忽略bin跟obj目录

SVN(TortoiseSVN)提交时忽略bin和obj目录 一般协作开发情况下,有意思无意将bin和obj目录添加到版本管理中是很烦人的事儿,在VS中不断地编译程序集和提交将带来版本暴增问题.如果你用的是SVN(TortoiseSVN)可以通过添加属性来忽略掉. 具体实现 在解决方案目录上点右键 在乌龟菜单中找到"属性"点开 在弹出窗中点"新增" 在弹出窗中的"属性"中选择"svn:ignore" 然后取值中填上bin和ob

如何引爆农村电商的小宇宙?

双十一的高潮尚未褪去,不知道有多少剁手族切掉了自己的小拇指,也不知道快递哥的电动车是不是常常在路上就没电了,更不知道,有多少败家男女为了这么一个人造的购物高潮,而在15天内持续地腰酸背痛-各路专家也是各出奇谋地解构本次事件,以及毫不脸红地预测:消费者购物正趋于理性,明年双十一销售额绝逼不会再增长了,总之,大家挺爽,有些人还爽过头了! 尴尬的是,双十一期间爽也好,不爽也罢,或者爽过头弄得腰酸背痛,这些都只局限于城市的网购人群,而在广袤的农村,大家却只知道11月11日之后,天气会更冷了,那里的消费者

Storm on Yarn :原理分析+平台搭建

Storm on YARN: Storm on YARN被视为大规模Web应用与传统企业应用之间的桥梁.它将Storm事件处理平台与YARN(Yet Another Resource Negotiator)应用管理框架进行了组合,为此前进行批处理的Hadoop应用提供了低延迟的处理能力. 诞生背景(yahoo): 雅虎公司平台副总裁Bruno Fernandez-Ruiz表示,他们发现Hadoop在处理海量数据时的速度还不够快.Hadoop和MapReduce的速度无法满足用户事件,比如电子邮件

iOS extern使用教程

Demo下载http://download.csdn.net/detail/u013375242/8335911 不说废话,iOS开发,用的Xcode,项目结构如下: 1.定义My_extern类,继承NSObject, .m文件如下 .: 2.在ViewController调用,不用引入上类的头文件,直接在ViewController.h使用:如下: extern 用法解释 在源文件A里定义的变量,在其它源文件里是看不见的(即不能访问).为了在源文件B里能调用这个函数,应该在B的头部加上一个外

只有走过的路 才懂她的内容

年少初遇常在我心 傻傻的站在十一教门前一排高高的杨树下伫立,独念风凉,叶落肩头,我该用什么去聆听这走过的两个月,明年的枝头,依然会看到今日的灿烂.想想磕磕绊绊的两个月,学习的故事轮番上演,一个比一个精彩,一个比一个纠结,只是学习的主角换了又换,还是当是那熟悉的模样.两个月,风雨兼程:稍带夸张,岁月,慢慢催老容颜,稍带矫情,季节,依旧如约而至上演,走过的路,纠结过的代码,都是上天为了锻炼你,馈赠给我的礼物,经历了泪水悲欢流淌过,才会铭记于心.回望七月和八月的长廊,我润开一段痛并快乐着的曾经,回眸,