js打开新窗口并且不被拦截

window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,那么如何避免呢。

注意,只有直接使用js调用 window.open(url); 打开新窗口时,才会被拦截,如果是改变原理额窗口:window.open(url,‘_self‘); 则不会被拦截。

那么 js调用 window.open(url); 打开新窗口,如何才能不会浏览器拦截呢?

浏览器会拦截你,是认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你可以将这个函数改为用户点击时触发,这样浏览器就认为是用户想访问这个页面,而不是你直接弹出给用户。


0.最好的解决办法

var form = document.createElement(‘form‘);form.action = ‘www.baidu.com?id=1‘;form.target = ‘_blank‘;form.method = ‘POST‘;document.body.appendChild(form);form.submit();

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

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

1.onclick
常用的方法就是在超链接里加入onclick事件,如这样用户点击这个超链接,浏览器会认为它是打开一个新的链接,所以就不会拦 截。

2.setTimeout

 setTimeout(‘window.open(url);‘, 500);

使用 setTimeout 包装一下,也可以防止被浏览器拦截。注意这里的超时时间不能太短,否则也会被拦截。

3.location
可是有时候我们会遇到想要弹出一个窗口,可是却是在onckick事件执行后,才去弹出来的,这时就会被浏览器拦截,我们可以通过下面的方法来避免,就是 先用window.open打开一个窗口,然后修改地址。如

var tempwindow=window.open(‘_blank‘); //打开一个窗口,然后用tempwindow.location=‘http://www.baidu.com‘; // 使这个窗口跳转到百度,这样就会呈现弹出百度窗口的效果了。

https://www.cnblogs.com/digdeep/p/4590337.html

js打开新窗口并且不被拦截相关推荐

  1. js打开新窗口被拦截问题

    打开新窗口的方式主要有 window.open, a标签增加target="_blank"属性,form标签增加target="_blank"属性 用户直接点击 ...

  2. js页面跳转 和 js打开新窗口方法

    js页面跳转 和 js打开新窗口 方法 Js返回上一页: 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history. ...

  3. js打开新窗口,js打开居中窗口,js打开自定义窗口

    js打开新窗口,js打开居中窗口,js打开自定义窗口 ================================ ©Copyright 蕃薯耀 2018年8月16日 http://fanshuy ...

  4. js打开新窗口的各种方法

    window.top.location=url 可以在iframe中的页面在父窗口刷新打开 window.open方法可控制的样式丰富,比如我们可以控制窗口显示的大小,窗口显示的内容,以及位置等等.都 ...

  5. JS 打开新窗口的方法

    一.window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二.基本语法:window.open(pageURL,name,pa ...

  6. js页面跳转和js打开新窗口

    js页面跳转 和 js打开新窗口 方法 Js返回上一页: 1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2); 2. history. ...

  7. 浏览器拦截js打开新窗口的解决方案

    今天技术大佬问了我一个问题:使用js在浏览器中打开新的窗口,什么时候会被拦截?什么时候不会被拦截? 一下给我问住了······· 于是上网百度的一波~ 常用的两种打开新窗口的方式 window.ope ...

  8. JS打开新窗口的代码window.showModalDialog()

    用JS代码打开新窗口 function openNewWindow(url,width,height,formname) {     var feature="dialogWidth:&qu ...

  9. js打开新窗口时隐藏掉地址栏的解决方案

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.问题? 二.解决思路 1.修改window.open参数 2.跳转空白页,由空白页初始化时使用ajax跳转页面 总 ...

最新文章

  1. 找不到vtkIOImage文件解决方法
  2. (0094)iOS开发之本地文件预览的三种方法(2)
  3. 90%人工智能公司都亏损?AI盈利难背后的大数据门槛
  4. spring boot 限制初始值大小及参数中文详解
  5. matlab hsv提取s_Matlab进阶教程 | 基于不规则已知点插值
  6. 华为上机:求2的N次幂的值
  7. 城市轨道交通运营票务管理论文_解读新版《天津市轨道交通票务管理定》
  8. kernel中对文件的读写【学习笔记】【原创】
  9. Springboot04整合Druid
  10. 存储维护和服务器的区别,存储服务器和普通服务器区别是什么? 你想知道吗服务器类型一般是什么...
  11. linux 打包库文件,Linux的文件的打包(tar方法)
  12. 你属于开源性格测试六大分类中的哪一类呢
  13. 上传文件到某文件夹时,提示...路径访问被拒绝
  14. Python3数据结构总结(列表list,元组tuple,集合set,字典dict,堆栈stack,队列queue和遍历技巧)
  15. 自驾游你会经常自己做饭吗?
  16. 一网打尽!每个程序猿都该了解的黑客技术大汇总
  17. Python爬虫编程实践Task 01
  18. opencv findContuors 详解
  19. 中缀表达式转后缀表达式
  20. wifi ap6212驱动移植及调试分析技术笔记

热门文章

  1. 应对新《劳动合同法》 万名华为员工自选去留
  2. stimulsoft入门教程:简单列表报表
  3. javascript顺序点击文字验证
  4. 如何通过自学成为一名安卓软件开发工程师?
  5. 小狗钱钱:钱钱的金钱语录
  6. 【3小时学会C语言】横向对比/纵向剖析,轻松学习C语言
  7. 【转】矩阵运算所满足的定律
  8. nginx的max_fails的bug
  9. 关于redis服务的代码编码
  10. 数据结构与算法——慕课作业——第一章 概论 + 第二章 线性表