Hi,网页设计师综合门户欢迎您!
设为首页  加为收藏  我要投稿找回密码免责声明意见反馈

招聘精英个人求职推广网站网友作品网页特效动画欣赏网页素材酷站欣赏源码下载设计软件

  • 全站搜索
  • 新闻资讯
  • 网页教程
  • 平面教程
  • 程序设计
  • 视频教程
  • Flash教程

网页设计师提供网页设计、网站程序开发、系统开发等,请联系QQ 103198680

 您当前的位置:首页 > 阅读文章
网页设计师综合门户欢迎您!

jquery强制弹出新窗口window.open

刊登方式:转载   来源:网络  作者:  关键词:平面设计理念  更新时间:2017/11/11

   目前情况下我们使用window.open自动弹出窗口都会给浏览器拦截掉了,但我们会发现有些网站还是可以弹出窗口了,这种是如何实现的呢?下面一起来看一下基于jquery的做法。

  在很多网站中,会有弹出窗口,通常采用window.open的方式,但是这个方式一般被浏览器给禁止了。

  说明这也是好事。现在的浏览器:360 猎豹 搜狗 等等都标明自己的安全性、智能性、屏蔽各种广告,给了用户很好的体验,但是可苦了我们这些站长们啊。

  有广告还不显示出来,如何过活啊?

  言归正传。

  如何用jquery强制弹出新窗口?

  今天分享一个办法。

  直接上代码:

  代码如下

  //打开新链接方法实现

  function windowOpen(){

  var a = document.createElement("a");

  a.setAttribute("href", url);

  if(target == null){

  target = '';

  }

  a.setAttribute("target", target);

  document.body.appendChild(a);

  if(a.click){

  a.click();

  }else{

  try{

  var evt = document.createEvent('Event');

  a.initEvent('click', true, true);

  a.dispatchEvent(evt);

  }catch(e){

  window.open(url);

  }

  }

  document.body.removeChild(a);

  }

  //新窗口打开

  windowOpen('http://www.45it.net/', '_blank');

  //当前窗口打开

  windowOpen('http://www.45it.net/', '_self');

  思路

  其实做法很简单,首先模拟A标签点击打开新窗口,若失败再直接调用window.open方法。

  问题

  目前无法在异步的情况下调用该方法。如下:

  代码如下

  //以下做法将得不到期望的结果,会被浏览器阻止$.get("http://www.a.com/ajax",function(){

  windowOpen('http://www.45it.net/', '_blank');

  });

  无法调用的原因是:浏览器中的javascript是单线程的。虽然$.get是ajax的一个方式,是异步的。但是这个异步只是一个模式,不是真正的浏览器异步线程。