javascript - 使用目标 ="_blank"提交的表单在 ajax 请求之后打开一个弹出窗口而不是新选项卡

标签 javascript ajax html web

我需要一些帮助...

有人知道如何解决这个问题吗?:http://jsfiddle.net/Q3BfC/5/

当我默认提交带有 target="_blank"的表单时,会打开一个新选项卡。但是如果在 ajax 请求之后尝试这样做,表单会打开一个弹出窗口。

(function($) {
    jQuery(document).ready(function() {

        var launch = function(p_url) {
            var form = $('<form />').hide();
            form.attr({'action': p_url, 'target': '_blank'});
            form.appendTo(document.body);
            form.submit();
            form.remove();
            delete form;
        };

        $('#normal').on('click', function() {
            launch('http://www.google.com');
        });

        $('#ajax').on('click', function() {
            $.ajax({
                type: 'POST',
                url: '#',
                traditional: true,
                success: function() {
                    launch('http://www.google.com');
                }
            });
        });

    });
})(jQuery);

谢谢!

最佳答案

它不是试图将其作为弹出窗口打开,但它被弹出窗口阻止程序阻止,因为只有当它是用户输入的直接结果时,才允许在新选项卡中打开带有 target:_blank 的内容,如点击或按键。

当您尝试在 setTimeout 中打开它时,您将得到相同的结果:

setTimeout(function() {launch('http://www.google.com')}, 10);

关于javascript - 使用目标 ="_blank"提交的表单在 ajax 请求之后打开一个弹出窗口而不是新选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14458128/

相关文章:

javascript - Angularjs,在受限标签(如 select 或 table)内使用条件标签(如 ng-if)

javascript - Amazon S3 CORS 仍然无法工作 : No 'Access-Control-Allow-Origin'

javascript - 获取稀疏 JavaScript 数组的第一个元素

javascript - Cheerio:如何在标签 <td> 中获取文本数组

javascript - 如何控制 Bootstrap 表上的按钮操作

当延迟 Ajax 请求完成时,Jquery Each 循环一个又一个

PHP-MySQL 链接检索正常,但在表中移动链接

javascript 正则表达式 - 组

html - CSS 填充导航

php - Bootstrap 按钮输入组无法使用 <form> 标签正确显示