`

window.open和trigger会被浏览器拦截的问题

阅读更多
今天希望做一个效果,即触发某个事件(不一定是点击事件)的同时,打开一个页面。

1. 开始以为很简单:
window.open('http://www.xxxx.com');


2. 后来发现当在window.open被ajax包裹时,被打开的页面会被部分浏览器拦截,如:
$.post(url, data).then(function(data){
    window.open('http://www.xxxx.com');
});


3. 想到通过触发某个a标签来实现。
html代码:
<a id="id_link" href="http://www.xxxx.com"></a>

js代码:
$.post(url, data).then(function(data){
    $('#id_link').trigger('click');
});


4. 引出了新的问题,a标签没有被点开,几番查找后,修改html和js代码。
html代码:
<a id="id_link" href="http://www.xxxx.com"><span id="id_span"></span></a>

js代码:
$.post(url, data).then(function(data){
    $('#id_span').trigger('click');
});


5. 根据以上代码,a标签是被打开了,可是页面还是被浏览器拦截,于是结合2和4。
html代码:
<a id="id_link" href="###"><span id="id_span"></span></a>

js代码:
$('#id_link').click(function(){
    window.open('http://www.xxxx.com');
})
$.post(url, data).then(function(data){
    $('#id_span').trigger('click');
});


竟然好用了……,浏览器为什么允许这种行为,倒是个新的问题。

话说今天表现的像个菜鸟一样,不过想想,我的确就是个菜鸟,于是风高云淡了。
分享到:
评论

相关推荐

    window.open打开新窗口,不被拦截的方法

    但是,在实际应用中,由于浏览器的安全策略限制(如弹出窗口拦截功能),直接使用`window.open()`可能会导致新窗口被浏览器自动拦截,从而无法正常显示。本文将详细介绍如何使用`window.open()`方法打开新窗口,并...

    window.open最大化问题

    Window.open 最大化问题解决方案 Window.open 是 JavaScript 中的一个方法,用于打开新的浏览器窗口。然而,在实际应用中,我们经常需要将弹出的窗口最大化,以便更好地展示内容。在本文中,我们将探讨如何使用 ...

    window.showModalDialog模式对话框和 window.open的区别

    这些文件可能用于实现用户管理或人员选择等功能,与`window.showModalDialog`和`window.open`的使用直接关联不大,但在实际Web应用中,这些JSP文件可能会用到这两种弹窗方法来创建用户交互界面。例如,`member-admin...

    window.open.txt

    根据提供的文件信息,我们可以深入探讨`window.open()`方法在不同浏览器环境下的特性和使用细节。 ### window.open() 方法概述 `window.open()`是JavaScript中一个非常实用的方法,它用于在一个新的浏览器窗口或...

    windows.open()详解及浏览器兼容问题

    关于window.open()的详细介绍使用,浏览器对于bom的不同兼容问题

    window.open打开新窗口参数设置

    1. **兼容性问题**:不同的浏览器对 `window.open()` 方法的支持程度不同,因此在使用时需要注意浏览器兼容性问题。 2. **弹窗阻止**:许多浏览器都具有弹出窗口阻止功能,这可能会影响 `window.open()` 方法的执行...

    javascript 打开页面window.location和window.open的区别.docx

    在JavaScript中,`window.location` 和 `window.open` 都是用来控制浏览器导航的重要API,但它们在使用场景、功能特性和行为上有显著的不同。了解这些差异对于合理地利用这两种方法至关重要。 #### 二、window....

    Window.Open详解

    `window.open()` 是一个在Web开发中经常被用来创建新浏览器窗口或标签页的方法。此方法是 `window` 对象的一个属性,通过调用该方法可以指定打开的新窗口的URL、名称以及一系列窗口参数。 #### 二、基本语法 ```...

    js弹窗并返回值(window.open方式)

    在JavaScript中,`window.open`方法是一个非常实用的功能,它允许开发者创建新的浏览器窗口或标签页,并在其中加载指定的网页内容。这个方法在交互式用户界面设计中尤其常见,例如用于显示警告、确认对话框或者...

    window.open最大化操作

    window.open方法可以打开一个新的浏览器窗口,该方法接受三个参数:URL、窗口名称和窗口特性。其中,窗口特性可以指定窗口的各种属性,如宽度、高度、工具栏、菜单栏、滚动条等。 现在,让我们来看一下如何使用...

    window.open父子窗口传值问题

    在Web开发中,`window.open` 是一个JavaScript函数,它用于打开新的浏览器窗口或标签页。这个函数在处理用户交互,比如点击按钮打开新页面,或者在不同窗口间传递数据时非常常见。当我们谈论“window.open父子窗口...

    window.open关于浏览器拦截问题分析及解决方法

    总的来说,解决`window.open()`被浏览器拦截的问题,关键在于确保用户与页面的交互是触发新窗口打开的原因。开发者应尽量遵循良好的用户体验原则,避免不必要的弹窗,同时根据实际需求选择合适的解决方案。在实际...

    window.open打开窗口被拦截的快速解决方法

    总的来说,处理`window.open`被拦截的问题,关键在于理解浏览器的安全策略和用户交互原则。通过正确地构造URL、选择合适的时机以及合理设置窗口特性,可以有效地规避大部分拦截问题。同时,开发者应该遵循良好的编程...

    Javascript中封装window.open解决不兼容问题

    对window.open进行封装, 使其更好用, 且更兼容, 很多人说window.open不兼容,其实不是, 因为不能直接执行, 必须通过用户手动触发才行;看代码: 代码如下 var openWindow = function(url, options) { var str = ""; ...

    Window.open在chrome中被block issue分析及解决

    标题中的“Window.open在chrome中被block issue分析及解决”主要涉及的是JavaScript中window.open方法在Google Chrome浏览器中可能遇到的问题及其解决方案。window.open方法是JavaScript中用于打开新窗口或标签的...

    字符串 window.open() window.opener window.name window对象等的总结

    `window.open()` 是一个非常实用的方法,用于打开新的浏览器窗口、标签或替换当前窗口的内容。它的语法如下: ```javascript window.open(url, name, features, replace); ``` - `url`:新窗口加载的URL。 - `name...

    用window.open,opener实现网页间通信

    ### 使用 `window.open` 和 `window.opener` 实现网页间通信 #### 一、引言 在现代Web开发中,网页间的通信是一项常见的需求。例如,在多窗口或多个标签页的应用场景下,如何实现不同窗口间的高效数据交互,成为了...

    javascript弹出窗口 window.open使用方法以及参数说明分析篇

    window.open使用方法以及参数说明一、window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 二、基本语法: window.open(pageURL,name,parameters) 其中: pageURL 为子窗口路径 name 为子窗口...

    window.showModalDialog以及window.open用法简介

    Window.showModalDialog 和 Window.open 用法简介 Window.showModalDialog 和 Window.open 都是 JavaScript 中的方法,用于创建新窗口或对话框,下面分别介绍它们的用法和参数。 一、Window.open() 方法 Window....

Global site tag (gtag.js) - Google Analytics