我准备了这个jsFiddle:http://jsfiddle.net/x9D4c/9/
基本上,一个带有fadeOut回调的按钮会导致我的弹出窗口被阻止,而另一个没有fadeOut回调的按钮则不会。我应该/可以做些什么不同的事情?
谢谢你的帮助!
下面是jsfiddle中可用的代码。
HTML:
<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:
// ################################################
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();
});
});发布于 2013-07-19 23:31:13
浏览器会阻止JS代码自动打开弹出窗口。这样可以防止页面自动打开数百个窗口。因此,弹出窗口的打开仅限于由某些用户交互(单击)直接触发的函数调用。如果你使用动画,回调是从某种计时器中调用的,计时器属于“自动”类别。
https://stackoverflow.com/questions/17749837
复制相似问题