Généralement, ouvrir une nouvelle fenêtre en js est très simple, il suffit de window.open(url);
Mais comme je souhaite transmettre des paramètres au serveur, que les paramètres semblent être une longue chaîne et que la longueur des paramètres soumis dans la méthode get est limitée, j'ai donc les exigences suivantes :
1. Implémenter la soumission des publications en js
2. La page renvoyée sera affichée dans une nouvelle fenêtre
J'ai d'abord fait ceci :
$.ajax({
Tapez : "POST",
url : '${contextPath}/analyse/detail.do',
données : {carNum:carNum,ids:refIds},
Succès : function(str_response) { var obj = window.open("about:blank");
} );
Soumises via jQuery ajax, les données renvoyées sont écrites dans une nouvelle page, mais comme le navigateur intercepte la fenêtre contextuelle automatique, l'utilisateur doit la débloquer lui-même et l'expérience utilisateur est très mauvaise,
Puis je l'ai implémenté en simulant la soumission d'un formulaire
Copier le code
Le code est le suivant :
function post(URL, PARAMS) { var temp_form = document.createElement("form");
temp_form .action = URL;
temp_form .target = "_blank";
temp_form .method = "post";
temp_form .style.display = "none"; for (var x in PARAMS) {
opt.name = x;
opt.value = PARAMS[x];
temp_form .appendChild(opt);
document.body.appendChild(temp);
temp_form .submit();
}
Remarque : Si vous souhaitez ouvrir une nouvelle fenêtre, l'attribut cible du formulaire doit être défini sur '_blank'
Ensuite, demandez post('${contextPath}/analyse/detail.do',{carNum:carNum,ids:refIds});