我需要一些帮助...
有人知道如何解决这个问题吗?: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/