弹出窗口阻止程序阻止新选项卡

时间:2016-05-18 06:41:24

标签: javascript php jquery html ajax

我在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',
                })

点击应该是受信任的事件,但是这个代码有什么问题 PS:如果我使用target =“_ self”一切都好,但我需要打开一个新窗口。 THX。

2 个答案:

答案 0 :(得分:1)

当用户点击您的链接时,您的ajax请求应该按预期工作。将链接的代码更改为ajax请求的结果,然后通过select concat(CONVERT(DATE, LEFT('20161212093256', 8)) , ' ' , substring(RIGHT('20161212093256', 6),1,2)+ ':' + substring(RIGHT('20161212093256', 4),1,2) + ':' +RIGHT('20161212093256', 2)) 以编程方式调用事件处理程序后,会出现此问题。由于安全限制,程序触发的ajax请求将无法工作,至少在他们打开新窗口/标签时是这样。

如果您只想打开带有网址的新窗口或标签,则可以使用trigger()

答案 1 :(得分:0)

@ Raphioly-San Thx为sugest,我使用了async: true