يتم استخدام الإطارات لتخزين الصفحات الفرعية ، إما iframes أو framesets. كائن النافذة هو كائن عالمي ، وجميع الوظائف والكائنات في الصفحة في نطاقها.
1. الوالد يمثل النافذة الأصل. إذا كان هناك عدة طبقات من التعشيش في النافذة الأصل ، فإن TOT يمثل النافذة الأم ذات المستوى الأعلى.
تمثل الذات النافذة نفسها.
if (self == top) {//} فقط حدد ما إذا كانت النافذة في المستوى العلوي إذا (self == parent) {} //2.1. تصل صفحة الوالدين إلى عناصر صفحة الطفل. والفكرة هي أن جميع عناصر الصفحة الفرعية موجودة في نافذتها.
من الأفضل تعيين سمة الاسم للإطار ، وهو العمليات الأكثر ملاءمة. يحب
<iframe name = "test" src = "child.html"> </frame>
إذا كنت ترغب في الحصول على العنصر باستخدام "قائمة" المعرف في Child.html ، فيمكنك كتابته مثل هذا:
window.frames ["test"]. document.getElementById ('menu') ؛ // نظرًا لأن جميع الوظائف يتم تخزينها في كائن النافذة ، يمكن إزالة نافذة البداية: الإطارات ["اختبار"]. document.getElementById ('menu') ؛ // في المتصفح ، تكون سمة الاسم للإطار مكافئة لكائن النافذة في الصفحة الفرعية افتراضيًا ، بحيث يمكن اختصارها بشكل أكبر: test.document.getElementById ('menu') ؛2.2 PARTER PAGE تصل إلى وظائف أو كائنات صفحة الطفل. وظائف وكائنات الصفحة الفرعية موجودة في كائنات النوافذ الخاصة بهم ، كما هو مذكور أعلاه ، والمفتاح هو الحصول على الكائن.
// إذا كان child.html يحدد وظيفة showmesg ويجب استدعاؤه في الوالد ، ثم اكتب window.frames ['test']. showmesg () ؛ // اختصار نموذج test.showmesg () ؛ // بالمثل ، يقوم الكائن أيضًا بالوصول إلى Alert (test.person) ؛
2.3 طرق أخرى للحصول على المستندات.
استخدم أولاً "document.getElementById ()" أو "document.getElementsByTagName ()" للحصول على الإطار كعنصر تحت المستند ، ثم الوصول إلى سمة ContentDocument/ContentWindow (iframe ، محددة الإطار) ، يتم دعم الأول من أجل IE7-not ، والثاني غير مدعوم.
<iframe id = "testid" src = "child.html"> </frame> // ====== var doc = document.getElementById ('testid') ؛ // أو var doc = document.getElementSbyTagName ('iframe') [0] ؛ ثم var winordoc = doc.contentDocument || doc.contentWindow ؛ // اختر واحدة من اثنين من (winordoc.document) winoRdoc = winordoc.document ؛ WinOrdoc.getElementById ('menu') ؛ // إذا كنت بحاجة إلى كائن نافذة ، فاكتبه مثل هذا: if (winoRDOC.DefaultView) winSORC = WINNORDOC.DEFAULTVIEW ؛3.1 تصل صفحة الطفل إلى عناصر الصفحة الوالدية. نفس الفكرة مثل 2.1 ، احصل أولاً على نافذة الأصل. كائن document
parent.window.document.getElementById ('ParentMenu') ؛ // abbreviation parent.document.getElementById ('ParentMenu') ؛3.2. تصل صفحة الطفل إلى وظيفة أو كائن صفحة الأصل. نفس الفكرة مثل 2.2 ، احصل أولاً على كائن نافذة النافذة الأصل.
parent.parentFunction () ؛
أخيرًا ، دعنا نذكر نفس استراتيجية الأصل لـ JS ، أي أن رمز JS الموجود على موقع الويب A لا يسمح بالوصول إلى المحتوى الموجود على موقع الويب B ، حتى لو نشأت الرمز من موقع الويب B. إذا كان الإطار عبارة عن صفحة من مواقع الويب الأخرى ، ثم عند الوصول إلى بعضها البعض وفقًا للطريقة المذكورة أعلاه ، يجب أن يطالب المتصفح: "لا يوجد إذن".