首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弄不清楚为什么我的弹出窗口被阻止了

弄不清楚为什么我的弹出窗口被阻止了
EN

Stack Overflow用户
提问于 2013-07-19 23:25:54
回答 1查看 130关注 0票数 2

我准备了这个jsFiddle:http://jsfiddle.net/x9D4c/9/

基本上,一个带有fadeOut回调的按钮会导致我的弹出窗口被阻止,而另一个没有fadeOut回调的按钮则不会。我应该/可以做些什么不同的事情?

谢谢你的帮助!

下面是jsfiddle中可用的代码。

HTML:

代码语言:javascript
复制
<a href="#" id="anchor1">CauseBlock</a> - <a href="#" id="anchor2">Not Cause Block</a>

<div id="greenDiv" style="background-color: green;">green div</div>

JS:

代码语言:javascript
复制
// ################################################

function causeBlock() {
    causeBlockInsideFunction(function () {
        window.open("http://www.google.com/");
    });
}

function causeBlockInsideFunction(callback) {
    $("#greenDiv").fadeOut(function () {
        callback();
    });
}

// ################################################

function notCauseBlock() {
    notCauseBlockInsideFunction(function () {
        window.open("http://www.google.com/");
    });    
}

function notCauseBlockInsideFunction(callback) {
    // [...]
    callback();
}

// ################################################

$(document).ready(function() {
    $("#anchor1").click(function(e) {
        causeBlock();
    });
    $("#anchor2").click(function(e) {
        notCauseBlock();
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-19 23:31:13

浏览器会阻止JS代码自动打开弹出窗口。这样可以防止页面自动打开数百个窗口。因此,弹出窗口的打开仅限于由某些用户交互(单击)直接触发的函数调用。如果你使用动画,回调是从某种计时器中调用的,计时器属于“自动”类别。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17749837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档