No JS, geralmente é muito simples abrir uma nova janela.pen (URL); Apenas vá.
Mas como eu quero passar os parâmetros para o servidor, e os parâmetros parecem uma string longa, e o comprimento dos parâmetros de confirmação no método GET é limitado, tenho os seguintes requisitos:
1. Implementar o envio post em JS
2. A página retornada é exibida em uma nova janela
Primeiro de tudo, eu fiz isso:
A cópia do código é a seguinte:
$ .ajax ({
Tipo: "post",
url: '$ {contextpath} /analyse/detail.do',
Dados: {Carnum: Carnum, IDs: RefIds},
Sucesso: function (str_Response) {var obj = window.open ("Sobre: em branco");
obj.document.write (str_Response);
}
});
Enviado via JQuery Ajax, os dados retornados são gravados em uma nova página, mas como o navegador interceptará a janela pop-up automaticamente, o usuário ainda precisa desintercepcioná-lo e a experiência do usuário é muito ruim.
Então eu percebi zombando da submissão do formulário
A cópia do código é a seguinte:
função post (url, params) {var temp_form = document.createElement ("formulário");
temp_form .Action = url;
temp_form .target = "_blank";
temp_form .method = "post";
temp_form .style.display = "nenhum"; for (var x em parâmetros) {var opt = document.createElement ("textarea");
opt.name = x;
opt.value = params [x];
temp_form .appendchild (opt);
}
document.body.appendChild (temp);
temp_form .submit ();
}
Nota: Se você deseja definir a propriedade de destino do formulário de janela recém -inaugurado como '_blank'
Então solicite post ('$ {contextpath} /analyse/detail.do', {carnum: carnum, ids: refids});