блокировка всплывающих окон не работает для отправки формы откройте новую вкладку в Chrome - PullRequest
0 голосов
/ 06 марта 2019

У меня есть JSP-файл с именем a.jsp, он имеет такой код:

<script type="text/javascript">

    initFun = function() {           

        // .... code ommited
        if(email_flag){
            email();
        }

        template_type = "ARRIVAL";
    }

    initFun();
</script>

функция email в a.js:

function email(){

    var data = {};

    //populate data 

    submitDataViaForm(data, url,"_blank");  
}

функция submitDataViaForm в b.js:

function submitDataViaForm(data,url,_target,method){

    var form = jQuery('<form></form>');

    form.attr('action', url);  
    if(method){
        form.attr('method', method);
    }else{
        form.attr('method', 'post');
    }


    if(_target){
        form.attr('target', _target); 
    }

    for(k in data){
        var input = jQuery('<input type="hidden" />');
        input.attr("name",k);
        input.val(data[k]);

        form.append(input);
    }

    jQuery("body").append(form);

    form.submit(); 
    form.remove();
}

когда открыто a.jsp, если email_flag истинно, то в браузере будет вызываться email(), чтобы открыть новую вкладку в браузере и показать страницу отправки электронной почты.

Однако, даже если я установил всплывающее окно в chrome 73, эта новая вкладка по-прежнему открыта в большинстве случаи (иногда это можно заблокировать), почему?

В chrome 71.0.3578.80 он всегда может заблокировать мое всплывающее окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...