Maison  >  Article  >  interface Web  >  window.open() implémente les compétences de paramètres_javascript après le passage

window.open() implémente les compétences de paramètres_javascript après le passage

WBOY
WBOYoriginal
2016-05-16 16:10:081725parcourir

Dans les projets réels, nous rencontrons souvent le besoin de passer d'une page de sous-système à l'autre et de les ouvrir dans une nouvelle page. Mon équipe de projet utilise le framework SSH, donc les URL sont similaires à **** .action et en ont également deux. paramètres (ID système et nom du système). Les deux paramètres sont interceptés par struts et stockés dans la session ouverte, il existe également un menu arborescent implémenté par le plug-in ztree qui nécessite l'ID du système pour initialiser. , l'utilisation directe de window.open(url, "_blank") rendra la longueur de l'URL trop longue et exposera certains paramètres. Par conséquent, je souhaite utiliser la méthode post pour soumettre, en masquant le transfert de paramètres pendant le processus de soumission. Tout d'abord, je pense à la soumission ajax, mais il y aura des problèmes avec le transfert des deux paramètres et window.open() fera passer l'action deux fois, donc ils seront ignorés. Ensuite, j'ai regardé de plus près l'API window.open(), adresse du lien http://www.w3school.com.cn/jsref/met_win_open.asp. window.open() utilise par défaut la méthode de soumission get. Si vous souhaitez implémenter la méthode de soumission post, vous devez penser à une autre manière. Référez-vous à http://www.jb51.net/article/32826.htm, voici une méthode. C'est également une méthode couramment utilisée. Je l'ai légèrement modifié en fonction de la situation réelle :

Copier le code Le code est le suivant :

fonction openPostWindow(url, nom, data1, data2){
var tempForm = document.createElement("form");
tempForm.id = "tempForm1";
tempForm.method = "post";
tempForm.action = url;
tempForm.target=nom;
var hideInput1 = document.createElement("input");
​ hideInput1.type = "caché";
​ hideInput1.name="xtid";
hideInput1.value = data1;
var hideInput2 = document.createElement("input");
​ hideInput2.type = "caché";
​ hideInput2.name="xtmc";
hideInput2.value = data2;
tempForm.appendChild(hideInput1);
tempForm.appendChild(hideInput2);
Si(document.all){
TempForm.Attachevent ("onSubmit", function () {}); }autre{
          var subObj = tempForm.addEventListener("submit",function(){},false);         //firefox
>
​ document.body.appendChild(tempForm);
Si(document.all){
         tempForm.fireEvent("onsubmit");
}autre{
         tempForm.dispatchEvent(new Event("submit"));
>
tempForm.submit();
Document.body.removeChild(tempForm);
>
//fonction openWindow(nom){
// window.open("",nom);
//}

Le nombre de paramètres de la fonction openPostWindow() peut être modifié en fonction des besoins réels. data1 et data2 sont les paramètres qui doivent être transmis à l'action. De plus, les problèmes de compatibilité du navigateur d'événements Javascript doivent être pris en compte ici. J'ai commenté la fonction openWindow() ici, sinon une page vierge supplémentaire (about:blank) sera ouverte. Cela répond essentiellement aux besoins.

Ce qui précède est tout le contenu partagé dans cet article, j'espère que vous l'aimerez tous.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn