تختلف طريقة الاتصال اعتمادًا على ما إذا كانت سمة SRC في iframe مرتبطة بنفس المجال أو الرابط المتقاطع.
1. التواصل بين صفحات الأب والابن تحت نفس المجال
PARTER PAGE PARTE.HTML
نسخة الكود كما يلي:
<html>
<head>
<script type = "text/javaScript">
وظيفة says () {
تنبيه ("parent.html") ؛
}
وظيفة callchild () {
myframe.window.say () ؛
myframe.window.document.getElementById ("button"). value = "call end" ؛
}
</script>
</head>
<body>
<input id = "button" type = "button" value = "استدعاء الوظيفة في child.html says ()" onClick = "Callchild ()"/>
<iframe name = "myframe" src = "child.html"> </frame>
</body>
</html>
child.html
نسخة الكود كما يلي:
<html>
<head>
<script type = "text/javaScript">
وظيفة says () {
تنبيه ("child.html") ؛
}
وظيفة callparent () {
parent.say () ؛
parent.window.document.getElementById ("button"). value = "call end" ؛
}
</script>
</head>
<body>
<input id = "button" type = "button" value = "call the say () function in parent.html" onClick = "CallParent ()"/>
</body>
</html>
استدعاء الطريقة
تستدعي الصفحة الأصل طريقة صفحة الطفل: FramEname.window.childMethod () ؛
تستدعي صفحة الطفل طريقة الصفحة الأصل: parent.window.parentMethod () ؛
وصول عنصر DOM
بعد الحصول على window.document كائن الصفحة ، يمكنك الوصول إلى عنصر DOM.
أشياء يجب ملاحظتها
للتأكد من إجراء العملية بعد تحميل iframe ، إذا لم يتم تحميل iframe بعد ، فابدأ في استدعاء الأساليب أو المتغيرات في الداخل ، وسيحدث خطأ. هناك طريقتان لتحديد ما إذا كان يتم تحميل iframe:
1. استخدم حدث Onload على iframe
2. استخدم document.readyState == "أكمل" للحكم
2. طريقة اتصال صفحة الوالدين والثون عبر المجال
إذا ربط iframe صفحة خارجية ، فلا يمكن استخدام طريقة الاتصال تحت اسم المجال نفسه لأن آلية الأمان لم يتم استخدامها.
تمرر صفحة الوالدين البيانات إلى صفحات الطفل
تتمثل تقنية التنفيذ في استخدام قيمة التجزئة لكائن الموقع وتمرير بيانات الاتصال من خلاله. أضف سلسلة بيانات إضافية بعد SRC من IFRAME على الصفحة الأصل ، ثم بطريقة ما يمكنك الحصول على البيانات هنا على الفور ، على سبيل المثال:
1. اضبط الموقت في الصفحة الفرعية من خلال طريقة setInterval ، استمع إلى التغييرات في الموقع. href للحصول على معلومات البيانات المذكورة أعلاه
2. ثم يقوم الصفحة الفرعية بإجراء المعالجة المنطقية المقابلة بناءً على معلومات البيانات هذه.
تقوم صفحة الطفل بتمرير البيانات إلى الصفحة الأصل
تتمثل تقنية التنفيذ في استخدام وكيل IFRAME ، الذي يتم تضمينه في صفحة الطفل ويجب أن يبقى في نفس المجال مثل الصفحة الأصل. بعد ذلك ، من خلاله ، يستخدم بشكل كامل مبدأ التنفيذ لطريقة الاتصال الأولى أعلاه ، يمرر بيانات الصفحة الفرعية إلى الوكيل IFRAME. ثم ، نظرًا لأن الوكيل iframe والصفحة الرئيسية موجودون في نفس المجال ، يمكن للصفحة الرئيسية الحصول على هذه البيانات باستخدام نفس المجال. استخدم window.top أو window.parent.parent للحصول على إشارة إلى كائن النافذة على مستوى أعلى من المتصفح.