ajax成功响应和firefox弹出窗口拦截器

时间:2012-08-06 20:46:41

标签: javascript jquery firefox popup window

所以我理解Firefox弹出窗口拦截器的方式是它会阻止用户没有启动弹出窗口的弹出窗口(如果我错了就纠正我)

例如,如果你有

window.open(url, name);

它会阻止弹出窗口,但如果你有

$('checkbox').change(function(){
  window.open(url, name);
});

它不会阻止弹出窗口,因为它取决于用户执行操作(即更改复选框值)...

但是当我做的时候

$('checkbox').change(function(){
  $.ajax({
     url: someUrl,
     success : function(data){
       if(someCondition){
         window.open(someOtheUrl, name);
       }
     }
  });
});
然后,Firefox将尝试阻止此窗口。尽管它仍然取决于用户执行操作,但仍然会打开...

有没有办法告诉firefox这个弹出窗口是合法的,并且在用户操作中使用ajax时没有firefox阻止它?

1 个答案:

答案 0 :(得分:0)

我同意这些先前的评论,您不需要使用弹出窗口。只需使用像这样的jquery-ui模式....

 $('.delete').live('click', function(evt){
            var ref = $(this).attr('href');     
            $.get(ref, function(data){
            $('#modal_div').html(data);
            $(function() {
            $('#modal_div').dialog({
                autoOpen: true,
                show: "blind",
                hide: "fade",
                modal: true,
                width:301,
                buttons:
                {
                'Confirm Delete':function(){
                    // some action
                    },
                'Cancel':function(){
                    $(this).dialog('close');
                    }   
                }
            });
        });

    });
    evt.preventDefault();
});

});

所以这将完美地工作,并且当然它比用户弹出更能吸引用户!!

注意代码中的某些内容可能对您没用...我刚刚选择了一些我写的javascript代码!