Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止ajax调用后弹出窗口阻塞?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 如何防止ajax调用后弹出窗口阻塞?

Javascript 如何防止ajax调用后弹出窗口阻塞?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在做一个JS项目,我需要一些弹出窗口,问题是,当弹出窗口在ajax调用后出现时,浏览器会阻止它,但如果我在用户单击它时直接弹出,它工作正常 浏览器将阻止此操作: $.ajax({ url: url }).done(function(data) { showPopup(); }); 而浏览器将允许: $('#but').click(function(evt) { showPopup(); }); 浏览器中的块弹出窗口 请测试 $('#ajax_but').click

我正在做一个JS项目,我需要一些弹出窗口,问题是,当弹出窗口在ajax调用后出现时,浏览器会阻止它,但如果我在用户单击它时直接弹出,它工作正常

浏览器将阻止此操作:

$.ajax({
    url: url
}).done(function(data) {
    showPopup();
});
而浏览器将允许:

$('#but').click(function(evt) {
    showPopup();
});
浏览器中的块弹出窗口

请测试

$('#ajax_but').click(function() {
  $.ajax({
    async: false,
    url: 'data.json'
  }).done(function() {
    popup();
  });
});

启动Ajax的弹出窗口,在Fixy上更新它。请上车。你考虑过灯箱或模态,或者这不是一个选项吗?@丹达维斯,如果不能找到另一个,我会考虑这个解决方案。你找不到另一个。除非您使用sync ajax:对window.open的调用需要在调用堆栈中发生交互事件,否则它不会触发。您的弹出窗口应该显示类似于加载。。。我并不是真的使用$.ajax,我只是举一个简单的例子,我使用的是restanglar