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

The new tab is blocked by pop-up blocker

本文关键字:窗口 程序 选项 新选项      更新时间:2023-09-26

我在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