У меня есть 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
он всегда может заблокировать мое всплывающее окно.