لقد قمت بفرز حالة يتم فيها فقدان المرجع في طرق قفزة الصفحات المختلفة. يذكر أنه في IE ، عند إعادة توجيه الصفحة باستخدام طريقة مثل الموقع. href = "A.HTML" ، ستكون قيمة المستند. يجب أن يكون هذا خطأ في IE.
في معظم الحالات ، لن تتسبب هذه المشكلة في متاعب ، ولكن في بعض الأحيان يتعين علينا استخدام JavaScript للقفز ، وفي الوقت نفسه يتعين علينا جمع المستند.
نموذج الحصول على الطريقة
أول ما يتبادر إلى الذهن هو استخدام نموذج النموذج لبدء طلب الحصول على استخدام JS. الرمز يشبه هذا:
نسخة الكود كما يلي:
وظيفة gotopage (url) {
إذا (isie) {
// أي متصفح
var frm = document.createElement ("form") ؛
frM.Action = url ؛
frm.method = "get" ؛
document.body.appendchild (FRM) ؛
frm.submit () ؛
} آخر {
// غير
location.href = url ؛
}
}
يمكن أن تعمل هذه الطريقة كما هو متوقع ، و document.referrer في الصفحة المستهدفة يمكن أن تشير إلى الصفحة السابقة بشكل طبيعي.
طريقة انقر محاكاة العناصر A
بعد البحث عبر الإنترنت ، وجدت أن مدونة Situ Zhengmei سجلت طريقة أخرى للتعامل مع هذه المشكلة:
نسخة الكود كما يلي:
// تحديد جميع المتصفحات
وظيفة goto (url) {
location.href = url ؛
}
// إعادة تعريف لـ IE
إذا (isie) {
وظيفة goto (url) {
var endlink = document.createElement ('a') ؛
endlink.href = url ؛
document.body.appendChild (enterlink) ؛
endlink.click () ؛
}
}
المبدأ بسيط للغاية. أولاً ، قم بإنشاء عنصر A ، وحدد سمة HREF الخاصة به كوصلة الهدف ، ثم استخدم JS لتشغيل حدث النقر. بعد الاختبار ، يمكن أيضًا استرداد Document.referrer بشكل طبيعي على الصفحة المستهدفة.
رمز هذه الطريقة أقصر ويجب أن يكون أفضل من الحل أعلاه باستخدام نماذج النماذج.