في المشاريع الفعلية ، غالبًا ما أواجه مثل هذا الشرط ، أي القفز بين صفحات النظام الفرعي وفتح على صفحة جديدة. يستخدم فريق المشروع الذي أقوم به إطار عمل SSH ، وبالتالي فإن عناوين URL تشبه ****. الإجراء ، ولديه أيضًا معلمتان (معرف النظام واسم النظام). يتم اعتراض المعلمتين بواسطة الدعامات وتخزينها في الجلسة. هناك أيضًا قائمة تشبه الأشجار التي تنفذها المكون الإضافي Ztree في صفحة النظام الفرعي المفتوح والتي تتطلب تهيئة معرف نظام المعلمة. استخدم window.open (url ، "_ blank") مباشرة ، مما يجعل عنوان URL طويلًا جدًا ويعرض أيضًا بعض المعلمات. لذلك ، أريد استخدام Post للتقديم بدلاً من ذلك ، وإخفاء تمرير المعلمات أثناء عملية التقديم. بادئ ذي بدء ، أفكر في تقديم أياكس ، ولكن ستكون هناك مشاكل في إقرار معلمتين. سيؤدي Ajax Sridming and 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 ، name ، data1 ، data2) {
var tempform = document.createElement ("form") ؛
tempform.id = "tempform1" ؛
tempform.Method = "post" ؛
tempform.action = url ؛
tempform.target = الاسم ؛
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 () {}) ؛ //أي
}آخر{
var subobj = tempform.addeventListener ("submit" ، function () {} ، false) ؛ // Firefox
}
document.body.appendchild (tempform) ؛
if (document.all) {
tempform.fireevent ("onsubmit") ؛
}آخر{
tempform.dispatchevent (حدث جديد ("إرسال")) ؛
}
tempform.submit () ؛
document.body.removechild (tempform) ؛
}
// وظيفة OpenWindow (الاسم) {
// window.open ("" ، name) ؛
//}
يتم تعديل عدد المعلمات في وظيفة OpenPostwindow () بنفسها وفقًا للاحتياجات الفعلية. Data1 و Data2 هما المعلمات التي تحتاج إلى تمريرها أثناء العمل. بالإضافة إلى ذلك ، يجب النظر في مشكلات توافق متصفح أحداث JavaScript هنا. لقد علقت على وظيفة OpenWindow () هنا ، وإلا سأفتح صفحة فارغة إضافية (حول: فارغة). هذا يلبي الاحتياجات أساسا.
ما سبق هو كل المحتوى المشترك في هذه المقالة ، أتمنى أن تنال إعجابك.