في JS ، عادة ما يكون من السهل جدًا فتح نافذة جديدة. open (url) ؛ فقط اذهب.
ولكن بما أنني أرغب في نقل المعلمات إلى الخادم ، وتبدو المعلمات كسلسلة طويلة ، وطول معلمات الالتزام في طريقة GET محدودة ، لدي المتطلبات التالية:
1. تنفيذ ما بعد التقديم في JS
2. يتم عرض الصفحة التي تم إرجاعها في نافذة جديدة
بادئ ذي بدء ، فعلت هذا:
نسخة الكود كما يلي:
$ .ajax ({
النوع: "بعد" ،
url: '$ {contextpath} /analyse/detail.do' ،
البيانات: {carnum: carnum ، ids: refids} ،
النجاح: الدالة (str_response) {var obj = window.open ("about: blank") ؛
obj.document.write (str_response) ؛
}
}) ؛
تم تقديم البيانات التي تم إرجاعها عبر jQuery Ajax ، في صفحة جديدة ، ولكن نظرًا لأن المتصفح سيعترض النافذة المنبثقة تلقائيًا ، لا يزال المستخدم بحاجة إلى عدم إمكانية تصويره بنفسه ، وتجربة المستخدم سيئة للغاية.
ثم أدركت من خلال السخرية من تقديم النموذج
نسخة الكود كما يلي:
POST 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 = "none" ؛ لـ (var x in params) {var opt = document.createElement ("textarea") ؛
opt.name = x ؛
opt.value = params [x] ؛
temp_form .appendchild (OPT) ؛
}
document.body.appendchild (temp) ؛
temp_form .submit () ؛
}
ملاحظة: إذا كنت ترغب في تعيين الخاصية المستهدفة لنموذج النافذة المفتوح حديثًا إلى "_blank"
ثم طلب post ('$ {contextpath} /analyse/detail.do' ، {carnum: carnum ، ids: refids}) ؛