0

したがって、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は、ユーザーがアクションを実行することを条件としているにもかかわらず、このwindow.open呼び出しをブロックしようとします...

ユーザーアクション内でajaxを使用するときに、このポップアップが正当であり、FirefoxがそれをブロックしないことをFirefoxに伝える方法はありますか?

4

1 に答える 1

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コードをいくつか選びました!

于 2012-08-20T04:56:57.450 に答える