Dans JS, il est généralement très simple d'ouvrir une nouvelle fenêtre.Open (URL); Allez-y.
Mais comme je veux transmettre des paramètres au serveur et que les paramètres ressemblent à une longue chaîne, et la longueur des paramètres de validation dans la méthode GET est limitée, j'ai les exigences suivantes:
1. Implémenter la soumission du poste dans JS
2. La page retournée s'affiche dans une nouvelle fenêtre
Tout d'abord, j'ai fait ceci:
La copie de code est la suivante:
$ .ajax ({
Type: "Post",
URL: '$ {contextPath} /analyse/detail.do',
Données: {Carnum: Carnum, IDS: refids},
Succès: fonction (str_response) {var obj = window.open ("À propos: blanc");
obj.document.write (str_response);
}
});
Soumis via jQuery Ajax, les données renvoyées sont écrites dans une nouvelle page, mais comme le navigateur interceptera la fenêtre pop-up automatiquement, l'utilisateur doit toujours le désintercepter lui-même et l'expérience utilisateur est très médiocre.
Puis j'ai réalisé en me moquant de la soumission de formulaire
La copie de code est la suivante:
Fonction 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 = "aucun"; pour (var x dans params) {var opt = document.createElement ("textArea");
opt.name = x;
opt.value = params [x];
temp_form .appendChild (opt);
}
Document.Body.ApendChild (Temp);
temp_form .submit ();
}
Remarque: si vous souhaitez définir la propriété cible du formulaire de fenêtre nouvellement ouvert à '_blank'
Puis demandez post ('$ {contextPath} /analyse/detail.do', {carnum: carnum, ids: refids});