我在JS中有以下代码:
$('#external-apply-job a').click(function(e) {
var button = $(this);
var url = $(this).data("system-url");
loadPreloader();
$.ajax({
url: url,
type: 'GET',
async: false,
data: {mode: 'json'},
dataType: 'json',
})
.done(function(data) {
if (data.type !== 'danger')
{ $(button).html(data.message); $(button).addClass('clicked'); $(button).trigger('click');}
})
.always(function() {
unloadPreloader();
});
});
这就是链接:
<a target="_blank" href="generated url" title="some name">Sistem</a>
我知道使用
$.ajax({
url: url,
type: 'GET',
async: false,
data: {mode: 'json'},
dataType: 'json',
})
click应该是可信事件,但错误的是以下代码PS:如果我使用target="_self",一切都可以,但我需要打开一个新窗口。THX。
当用户点击您的链接时,您的ajax请求应该能正常工作。将链接的代码更改为ajax请求的结果,然后通过trigger()
以编程方式调用事件处理程序后,就会出现问题。由于安全限制,由程序触发的ajax请求将无法工作,至少如果他们打开了一个新的窗口/选项卡
如果你只想打开一个带有url的新窗口或选项卡,你可以简单地使用window.open()
。
@Raphaioly San Thx作为建议,我使用了async: true
。