في التطوير الأمامي على الويب ، نستخدم غالبًا التحكم في IFRAME.
ومع ذلك ، عند التحكم في التفاعلات الداخلية والخارجية ، غالبًا ما تكون الكلمات الرئيسية المستخدمة من قبل كل متصفح مختلفة ، وهو أمر مزعج للغاية. من أجل الحصول على كائن النافذة في الإثارة الفرعية ، يحتوي كل متصفح على مواصفاته الخاصة ، وبعضها نوافذ ، وبعضها محتوى ، وهكذا ، وربما هناك بعض لا نعرفه.
ومع ذلك ، ما عليك سوى الوصول إلى صفحة الطبقة الأصل من صفحة الطفل ، وفي النموذج الأصلي ، يكون الجميع نافذة.
ثم من خلال هذه الميزة ، يمكننا تمرير كائن النافذة الخاص بنا إلى صفحة الأصل في صفحة الطفل ، بحيث يمكن للصفحة الأصل الوصول بسهولة إلى صفحة الطفل ، ولم يعد علينا أن نقلق بشأن كيفية الحصول على كائن النافذة من كائن iFrame.
دون أن نقول كلمة واحدة ، دعونا نلقي نظرة على الكود أولاً:
رمز صفحة الوالدين:
window.iframewindow = NULL ؛ FUNCTION Frameready (subwindow) {window.iframewindow = subwindow ؛ //تكليف}؛ <iframe src = "xx"> </frame>رمز الصفحات الفرعية:
$ (function () {window.parent.frameready (window) ؛}) ؛من خلال الكود البسيط أعلاه ، يمكنك الوصول إلى كائن iframewindow في الصفحة الأصل ، والحصول على كائن نافذة صفحة الطفل مباشرة ، وهو أمر غير مفيد للغاية ومفيد للغاية.
ماذا لو كان لدي العديد من الإطارات؟
سيكون هذا الموقف أكثر تعقيدًا ، لكن هذا لا يهم. نريد الاستمرار في استخدام الحل أعلاه ، لذلك دعونا نحلل الوضع الحالي:
1. يجب أن نحتاج إلى كائن جمع مشابه لـ Iframewindows لإدارة كائنات النوافذ لجميع الصفحات الفرعية.
2. عندما تستدعي كل صفحة طفل Parent.Frameready ، يجب أن تعتمد على اسم فريد للصفحة الأصل ، حتى نتمكن من الوصول بدقة عن كل معفاة من Iframe في الصفحة الأصل.
ثم الأمر بسيط الآن. ما يجب أن يفعله الصفحة الفرعية أكثر من اسم أو رقم ، إلخ. دعنا ننظر إلى الكود
window.subwindowname = "helloworldwindow" ؛ $ (function () {window.parent.frameready (window.subwindowname ، window) ؛}) ؛ثم ما تحتاج الصفحة الأصل إلى فعله هو refactor frameready وإضافة معلمة
window.iframewindows = {} ؛ // هذا يصبح وظيفة كائن Frameready (الاسم ، النافذة) {window.iframewindows [name] = window ؛} ؛ وظيفة getBwindow (الاسم) {return window.iframewindows [name] ؛}تلخيص:
الصفحات المصممة مع هذا المخطط لها المزايا التالية:
1. يعتمد تفاعل صفحات الوالدين فقط على الكلمات الرئيسية الأصل (وبالطريقة السابقة ، فهي لا تعتمد فقط على الوالدين ، ولكن أيضًا على ContentWindow و Window وغيرها من الكلمات الرئيسية غير المؤكدة. الشيء الأكثر أهمية هو أن دعم الوالدين لا يزال جيدًا جدًا)
2. كائنات نافذة موحدة ، تقليل السلسلة المرجعية المطلوبة في كل مرة يتم استخدامها ، وتحسين سرعة التشغيل
3. النقطة الأكثر أهمية: هي أن الكود أسهل بكثير في الكتابة.
ما سبق هو الحل لتفاعل javaScript iframe والتوافق مع المتصفحات المختلفة التي قدمها المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!