ในโครงการจริงฉันมักจะพบข้อกำหนดดังกล่าวนั่นคือการข้ามระหว่างหน้าระบบย่อยและเปิดในหน้าใหม่ ทีมงานโครงการที่ฉันใช้กำลังใช้เฟรมเวิร์ก SSH ดังนั้น URL จึงคล้ายกับ ****. การกระทำและพวกเขายังมีพารามิเตอร์สองตัว (รหัสระบบและชื่อระบบ) พารามิเตอร์ทั้งสองถูกสกัดกั้นโดย struts และเก็บไว้ในเซสชั่น นอกจากนี้ยังมีเมนูเหมือนต้นไม้ที่ใช้โดยปลั๊กอิน ztree ในหน้าระบบย่อยเปิดซึ่งต้องการ ID ระบบพารามิเตอร์ที่จะเริ่มต้น ใช้ window.open (url, "_ blank") โดยตรงซึ่งจะทำให้ URL ยาวเกินไปและยังเปิดเผยพารามิเตอร์บางอย่าง ดังนั้นฉันต้องการใช้โพสต์เพื่อส่งแทนซ่อนพารามิเตอร์ที่ผ่านระหว่างกระบวนการส่ง ก่อนอื่นฉันคิดถึงการส่ง Ajax แต่จะมีปัญหากับการผ่านของพารามิเตอร์สองตัว การส่ง Ajax และ window.open () จะทำให้การกระทำไปสองครั้งดังนั้นฉันจะยอมแพ้ ต่อมาฉันดูที่ window.open () API อีกครั้งและที่อยู่ลิงค์คือ http://www.w3school.com.cn/jsref/met_win_open.asp window.open () เป็นวิธีการส่งโดยค่าเริ่มต้น หากคุณต้องการใช้วิธีการส่งโพสต์คุณต้องคิดถึงวิธีอื่น อ้างถึง //www.vevb.com/article/32826.htm วิธีการแนะนำที่นี่ นอกจากนี้ยังเป็นวิธีที่มักใช้ ฉันทำการแก้ไขตามสถานการณ์จริง:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น OpenPostWindow (url, ชื่อ, data1, data2) {
var tempform = document.createElement ("Form");
tempform.id = "tempform1";
tempform.method = "โพสต์";
tempform.action = url;
tempform.target = ชื่อ;
var hideInput1 = document.createElement ("อินพุต");
hideInput1.type = "ซ่อน";
hideInput1.name = "xtid";
hideInput1.Value = data1;
var hideInput2 = document.createElement ("อินพุต");
hideInput2.type = "ซ่อน";
hideInput2.name = "xtmc";
hideInput2.Value = data2;
Tempform.AppendChild (HideInput1);
Tempform.AppendChild (HideInput2);
if (document.all) {
tempform.attachevent ("onsubmit", function () {}); //เช่น
}อื่น{
var subobj = tempform.addeventListener ("ส่ง", function () {}, false); // firefox
-
document.body.appendchild (tempform);
if (document.all) {
tempform.fireevent ("onsubmit");
}อื่น{
tempform.dispatchevent (เหตุการณ์ใหม่ ("ส่ง"));
-
tempform.submit ();
document.body.removechild (tempform);
-
// ฟังก์ชั่น OpenWindow (ชื่อ) {
// window.open ("", ชื่อ);
-
จำนวนพารามิเตอร์ในฟังก์ชัน OpenPostWindow () ได้รับการแก้ไขด้วยตัวเองตามความต้องการที่แท้จริง Data1 และ Data2 เป็นพารามิเตอร์ที่ต้องผ่านการดำเนินการ นอกจากนี้ปัญหาความเข้ากันได้ของเบราว์เซอร์ JavaScript เหตุการณ์จำเป็นต้องได้รับการพิจารณาที่นี่ ฉันได้แสดงความคิดเห็นเกี่ยวกับฟังก์ชั่น OpenWindow () ที่นี่มิฉะนั้นฉันจะเปิดหน้าว่างพิเศษ (เกี่ยวกับ: ว่าง) สิ่งนี้ตรงกับความต้องการ
ข้างต้นคือเนื้อหาทั้งหมดที่แบ่งปันในบทความนี้ฉันหวังว่าคุณจะชอบ