Heim > Web-Frontend > js-Tutorial > window.open() implementiert Post-Passing-Parameter_Javascript-Fähigkeiten

window.open() implementiert Post-Passing-Parameter_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 16:10:08
Original
1766 Leute haben es durchsucht

In tatsächlichen Projekten müssen wir häufig zwischen Subsystemseiten wechseln und diese auf einer neuen Seite öffnen. Mein Projektteam verwendet das SSH-Framework, daher ähneln die URLs **** .action und haben auch zwei Parameter (System-ID und Systemname). Die beiden Parameter werden von Struts abgefangen und in der Sitzung gespeichert. Auf der geöffneten Subsystemseite gibt es auch ein Baummenü, das vom Ztree-Plugin implementiert wird Wenn Sie window.open(url, „_blank“) direkt verwenden, wird die URL-Länge zu lang und einige Parameter werden offengelegt. Daher möchte ich zum Senden die Post-Methode verwenden und die Parameterübertragung während des Übermittlungsvorgangs ausblenden. Zuerst denke ich an die Ajax-Übermittlung, aber es wird Probleme mit der Übertragung der beiden Parameter geben und window.open() führt dazu, dass die Aktion zweimal durchlaufen wird, sodass sie verworfen werden. Dann habe ich mir die window.open()-API genauer angesehen, Linkadresse http://www.w3school.com.cn/jsref/met_win_open.asp. window.open() verwendet standardmäßig die Get-Submission-Methode. Wenn Sie die Post-Submission-Methode implementieren möchten, müssen Sie sich einen anderen Weg überlegen. Siehe http://www.jb51.net/article/32826.htm, hier ist eine Methode. Es ist auch eine häufig verwendete Methode. Ich habe es entsprechend der tatsächlichen Situation leicht modifiziert:

Code kopieren Der Code lautet wie folgt:

Funktion openPostWindow(url, name, data1, data2){
var tempForm = document.createElement("form");
tempForm.id = "tempForm1";
tempForm.method = "post";
tempForm.action = url;
tempForm.target=name;
var hideInput1 = document.createElement("input");
​ hideInput1.type = "hidden";
​ hideInput1.name="xtid";
hideInput1.value = data1;
var hideInput2 = document.createElement("input");
​ hideInput2.type = "hidden";
​ hideInput2.name="xtmc";
hideInput2.value = data2;
tempForm.appendChild(hideInput1);
tempForm.appendChild(hideInput2);
If(document.all){
         tempForm.attachEvent("onsubmit",function(){});                                                                                            }else{
          var subObj = tempForm.addEventListener("submit",function(){},false);         //firefox
}
​ document.body.appendChild(tempForm);
If(document.all){
         tempForm.fireEvent("onsubmit");
}else{
         tempForm.dispatchEvent(new Event("submit"));
}
tempForm.submit();
Document.body.removeChild(tempForm);
}
//Funktion openWindow(name){
// window.open("",name);
//}

Die Anzahl der Parameter in der Funktion openPostWindow() kann je nach tatsächlichem Bedarf geändert werden. data1 und data2 sind die Parameter, die an die Aktion übergeben werden müssen. Darüber hinaus müssen hier Kompatibilitätsprobleme mit dem Javascript-Ereignisbrowser berücksichtigt werden. Ich habe die Funktion openWindow() hier kommentiert, sonst wird eine zusätzliche leere Seite (about:blank) geöffnet. Dies entspricht grundsätzlich den Bedürfnissen.

Das Obige ist der gesamte in diesem Artikel geteilte Inhalt. Ich hoffe, er gefällt euch allen.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage