我遇到弹出窗口阻止程序的问题。我想在我从服务器收到一些数据之后才为我的用户打开一个窗口,换句话说,我需要它才能成功 问题是弹出窗口阻止程序会在成功部分停止窗口,因为它认为脚本当前正在执行。我正在使用jquery 1.7.1.min并尝试使用(如下所示) 异步:假的。但由于某种原因,这是行不通的。我能够做的唯一工作就是打开一个假窗口,然后响应回来 覆盖假窗口。它适用于chrome但它在firefox中出现问题。需要一些帮助。感谢
function mypopup() {
$j.ajax({
type: 'POST',
url: "/my/phppage",
data: mydata,
async: false,
success: function (response) {
window.open(response, 'Dialogue Message', 'width=650,height=550,left=50,top=50,location=no,status=yes,scrollbars=yes,resizable=yes');
}
});
window.open("openfakewindow", 'Dialogue Message', 'width=650,height=550,left=50,top=50,location=no,status=yes,scrollbars=yes,resizable=yes');
}
答案 0 :(得分:0)
问题是Firefox只允许弹出窗口,如果它是从用户生成的事件创建的,例如点击事件。
你可以通过在Ajax调用之前打开一个空白窗口来解决这个问题,保持对它的引用,然后在ajax调用完成后设置URL。
答案 1 :(得分:0)
为什么不使用一个基本上是您识别的元素然后打开的对话框?
$(document).ready(function () {
$("#divAccountDialog").dialog(
{
modal: true,
autoOpen: false,
width: 700,
buttons: { Cancel: function () { $(this).dialog("close"); } }
}
);
});
someotherfunction(){ $( '#divAccountDialog')对话框( '开放');