一.问题描述 ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是会被浏览器给拦截了,需要用户点下. 二.问题分析 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了,即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 说明: 1.如果是在 <a href="javascri…
Window.open打开新窗口 1.常用浏览器打开新窗口(正常打开window.open)的的不同表现形式(PC/移动端) 2.Window.open在异步处理中打开(_blank) a标签在异步处理中打开 -公众号跳转的微信浏览器都是单窗口多页面打开,没有tab页,详情页返回都会刷新. -安卓手机中,无论使用a标签打开还是window.open打开新窗口,主流浏览器都可以实现期望的功能(除微信外). -在iphone中,目前测试的几个只有safari浏览器可以实现期望的功能,在其他浏览器中,…
这篇文章主要介绍了JS打开新窗口防止被浏览器阻止的方法,分析对比了常用方法与改进方法,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题 我最近也遇到了这样的问题,所以就把弹出新窗口的方法分享给大家.欢迎大家补充哦... 第一种.使用原生javas…
本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器阻止呢?其实办法还是有的,这里我们就来分析一下如何解决这个问题 我最近也遇到了这样的问题,所以就把弹出新窗口的方法分享给大家.欢迎大家补充哦... 第一种.使用原生javascript的window.open()方法(大部分情况下会被浏览自阻止) 第二种.模拟表单(form)提交,原理是指定表单的a…
问题描述: 代码中直接使用window.open('//www.baidu.com', '_blank');会被浏览器窗口拦截 原因浏览器为了维护用户安全和体验,在JS中直接使用window.open(url,"_blank")来打开新的链接是会被拦截的.通常项目需要在ajax异步请求完成后来打开新链接,下面提供几种解决方案 解决方案 1.最常用的(在ajax异步请求成功后打开新窗口) //先在ajax函数之前打开新窗口后再加载url $('#btn').click(function…
最近公司开发的一个项目,平凡用到下载各种类型的文件,但是例如.txt,.jpg,.pdf格式的文件呢浏览器会在当前窗口直接打开,影响用户体验,尝试各种方案和百度总结一下几点: 原理: 当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了(浏览器认为这可能是一个广告,不是一个用户希望看到的页面) 常用办法页面打开方式: 超链接<a href="https://www.baidu.com" tit…
1,基本描述 oNewWindow = window.open( sURL , sName , sFeatures, bReplace) window.open在打开一个窗口(其url为sURL)后,将返回一个代表该窗口对象的一个变量oNewWindow,如果打开不成功,则oNewWindow的值为null.同时为了对打开的窗口预先做一些控制,提供了其他一些参数(sName.sFeatures.bReplace)可供选择配置,下面将具体说明每个参数的含义 * oNewWindow:被打开的窗口的…
一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.location.reload(), 在某些特殊情况下也要用到另外一种新窗口打开的方法,就是window.open(),这个方法有一个问题就是会被基本所有的浏览器所拦截,要收到点击确认打开才可以,这样的体验可以说是非常不友好的~~ 感觉像一个有病毒的程序~~ 所以我们如果一定要用这个方法,但是又不想其被浏览器拦截,…
为什么要去模拟window.open() 打开一个 新的窗口呢,因为有些浏览器默认会拦截 window.open, 当需要函数中打开新窗口时,接可以使用a标签去模拟打开. /** * a模拟window.open,不会被浏览器拦截 * @param {String} url a标签打开的地址 * @param {String} id a标签的ID * @param {String} targetType a标签点击打开的方式(当前页面打开还是新窗口打开) */ openWindow: (url,…
使用 window 对象的 open() 方法可以打开一个新窗口.用法如下: window.open (URL, name, features, replace) 参数列表如下: URL:可选字符串,声明在新窗口中显示网页文档的 URL.如果省略,或者为空,则新窗口就不会显示任何文档. name:可选字符串,声明新窗口的名称.这个名称可以用作标记 <a> 和 <form> 的 target 目标值.如果该参数指定了一个已经存在的窗口,那么 open() 方法就不再创建一个新窗口,而…