博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于页面中 JS 中windown.open( )方法打开新页面有可能会被浏览器拦截的问题
阅读量:5747 次
发布时间:2019-06-18

本文共 1040 字,大约阅读时间需要 3 分钟。

hot3.png

       前言,在项目中突然间遇到了一个情况,同样的代码怎么有点地方window.open()打开的新页面不被拦截,有的地方又被拦截了呢,我百思不得其解,于是上网查了下,终于明白这是什么原因了,下面一一讲述。

   现在,先讲下打开新页面的方法,主要有一下几种:

       第一种:a标签 '<a href="test.php"target="_blank">,target="_blank"为打开一个新的窗口,否则,为当前页面跳转到指定页面;

       第二种:form表单'<form action="drag.html" method="get" id="form" target="_blank"/></form>',提交表单即可打开新页面,target='target',则将表单信息提交至新打开的指定页面,否则当前页面跳转到指定页面;

      第三种:window.location  执行window.location='test.php',页面将跳转到指定页面。

      第四种:window.open(url);执行window.open('test.php'),将会打开心新的指定页面,当前页面不变。 

      现在在对浏览器打开新页面的问题做一下简单小结,浏览器对于用户点击行为直接打开的页面一般不会拦截,比如不通过JS直接点击a、提交form表单,浏览器是不会阻止其跳转页面或者打开新页面行为的。但是对于JS打开新页面浏览器会好好审核的,如下面的例子,很多浏览器回去拦截。

//target为弹出新窗口    
    
    
 
点击我提交表单
点击我发送ajax提交表单

    上面是最简单的2种会被浏览器当成广告的情况,那么该如何避免避免这种情况呢,很简单,我们可以通过以下方法:

//target为弹出新窗口    
    
    
 
点击我提交表单
点击我发送ajax提交表单

转载于:https://my.oschina.net/u/1162669/blog/205643

你可能感兴趣的文章
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
单元测试
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
用Bootstrap写一份简历
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
从零开始学习IOS,(UILabel控件)详细使用和特殊效果
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
7、设计模式-创建型模式-建造者模式
查看>>
我国古代的勾股定理
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>