استخدام إطارات iframe في السنة. Iframe وFrame - ما هما وأفضل طريقة لاستخدام الإطارات في HTML

إحدى الطرق الأكثر شيوعًا لإصابة أجهزة كمبيوتر زوار موقع الويب هي استغلال الثغرة الأمنية المرتبطة بتدفق المخازن المؤقتة لمتصفح المستخدم. الوصفة بسيطة للغاية. يقوم المهاجمون بحقن تعليمات برمجية ضارة عن طريق إدراج إطارات iframe في صفحات موقع الويب ومحاولة تنزيل ملفات ضارة على كمبيوتر المستخدم المطمئن. من السهل جدًا اكتشاف مثل هذه الإدخالات الضارة على مواقع الويب الخاصة بك. عليك فقط الانتباه إلى أجزاء التعليمات البرمجية التي تستخدم اتصال iframe. يمكن أن تكون هذه الإدخالات في ملفات HTML وPHP.

يحاول المهاجمون دائمًا إخفاء استخدام الرهانات الضارة قدر الإمكان عن المالكين، وإخفائها بصريًا لمستخدمي الموارد وتشويش (التعتيم) على التعليمات البرمجية الخاصة بهم.

إخفاء إدراجات iframe عن أعين المستخدمين

لإخفاء إدراج ضار، يستخدم المتسللون في معظم الحالات نفس الطريقة مرارًا وتكرارًا - حيث يقومون بتعيين خصائص العلامة بحيث لا يتم عرضها على الصفحة، ولكنها موجودة في الكود الخاص بها. في أغلب الأحيان، يتم ضبط العرض والطول على صفر أو بكسل واحد: width='1px, height='1px.

على سبيل المثال، قد تبدو التعليمات البرمجية الضارة كما يلي:

ومع ذلك، في كثير من الأحيان لا يقتصر المتسللون على هذا التنكر، بل يكملون الإخفاء بتقنيات أكثر تعقيدًا يمكن أن تربك وتعقد عملية البحث والإزالة حتى بالنسبة للمبرمجين المتقدمين.

التشويش

تعد هذه إحدى الطرق الأكثر شيوعًا لحماية التعليمات البرمجية في البرمجة باللغات غير المنظمة (مثل PHP على سبيل المثال). في الواقع، كل عمليات التشفير تدور حول خلط/تشويش التعليمات البرمجية نفسها عن طريق تغيير أسماء المتغيرات والعناصر الأخرى. ونتيجة لذلك، من الصعب جدًا التعرف على علامات الضرر في التعليمات البرمجية المبهمة، وهو أمر ممكن فقط بناءً على علامات غير مباشرة للاستخدام الصريح لوظائف JS (JavaScript) الخاصة المستخدمة خصيصًا للتشويش: com.unescape, fromCharCode.

ومع ذلك، فإن اكتشاف تعليمات برمجية مشوشة على موقع ويب لا يعني أنها بالتأكيد ضارة أو سهلة الإزالة. عليك أن تفهم أنه أولاً، يمكن للمهاجمين تشويش الكود، والاستيلاء أيضًا على جزء من كود عمل الموقع. في هذه الحالة، عندما تحاول قطع جزء مشفر، فإنك تخاطر بتعطل موردك. ثانيًا، قد لا تكون التعليمات البرمجية المبهمة ضارة، ولكنها فقط نتيجة لتشغيل نظام إدارة المحتوى (CMS) الخاص بك أو مكوناته الفردية، بالإضافة إلى الوحدات الإضافية التي قمت بتثبيتها.

على أية حال، إذا واجهت تعليمات برمجية مشبوهة مشبوهة، فيجب عليك التصرف بأقصى قدر من الحذر.

علامات أخرى للعدوى

إذا كنت تشك فيما إذا كان الرمز الذي وجدته ضارًا، فيمكنك محاولة تحليل العلامات غير المباشرة. إذا كان لديك عدد كبير من الملفات على موقعك، فقد ترغب في الانتباه إلى تاريخ ووقت آخر تعديل للملفات. إذا كنت تعرف جيدًا السيناريوهات الخاصة بكيفية عمل نظام إدارة المحتوى (CMS) الخاص بك مع الملفات، فيمكنك إلقاء نظرة فاحصة على الملفات التي تم تغييرها في نفس التاريخ وفي نفس الوقت، أو مع التغييرات التي تحدث في نفس الفاصل الزمني، على سبيل المثال، ثانية واحدة.

إذا كنت مبرمجًا متقدمًا، فيمكنك كتابة برنامج نصي يتحقق من وجود نوع الإدخالات التي اكتشفتها في جميع الملفات الموجودة على موقعك. إذا كنت أكثر تقدمًا، فيمكنك إجبار البرنامج النصي على قطع الإدخالات، ومع ذلك، يجب عليك دائمًا توخي الحذر.

طرق بديلة

نوصي باستخدام خدمة Virusday لإزالة الإدخالات الضارة حتى لو كنت متخصصًا متقدمًا. لا تحتوي خدمتنا على العديد من التوقيعات التي يمكن استخدامها للعثور على الرموز الضارة فحسب، بل توفر الوقت أيضًا! بالإضافة إلى ذلك، من المحتمل أن تكون تكلفة استخدام Virusday للتنظيف أقل بكثير من تكلفة وقتك الخاص. ستتمكن من اكتشاف وإزالة ليس فقط إدراجات iframe، ولكن أيضًا العديد من التهديدات الأخرى. من المحتمل أن تتمكن من العثور على التهديد الذي تسبب في ظهور إدراجات iframe على موقعك وإزالته تلقائيًا، مثل Shell.

فريق خدمة فيروسداي.

تعليمات

توفر لغة HTML (لغة ترميز النص التشعبي) نوعين من الإطارات. يعد "العائم" أكثر مرونة وأسهل في إدراجه في أحد العناصر الموجودة. بشكل عام، يبدو البناء الذي يصف إدراج نافذة باستخدام إطار عائم كما يلي: هنا، مصدر البيانات لهذا الإطار هو الموقع الموجود (سمة src). سيتم فتحه في إطار بقياس 400 × 300، كما هو موضح في سمات العرض والارتفاع. يمكنك أيضًا تحديد صفحة موقعك في سمة src. في هذه الحالة، يكفي تحديد عنوان نسبي (أي عنوان متعلق بالصفحة التي تم إدراج الإطار فيها): في هذا المثال، لم يتم تحديد ارتفاع الإطار، ولكن هناك سمة معرف. باستخدامه، يمكنك استخدام CSS() لتعيين هذا الإطار إلى الأبعاد المطلوبة:

هناك نوع آخر من الإطارات - "الكلاسيكي" - يتطلب صفحة منفصلة تحتوي على وصف لبنية الإطارات. سيتم وضع الإطارات نفسها على صفحات منفصلة، ​​وربما حتى على مواقع منفصلة. قد يبدو كود HTML الخاص بصفحة الحاوية للإطارات كما يلي:




لا كتل ... و ... ، والتي تكون مطلوبة للصفحات العادية، يجب ألا تكون موجودة هنا في هذا المثال يحتوي على سمة الصفوف - وهذا يعني أنه يجب تقسيم مساحة الصفحة عموديًا وسيتم إعطاء الإطار الأول الجزء العلوي. إذا قمت باستبدال الصفوف بالأعمدة، فسيكون التقسيم أفقيًا. تشير قيمة هذه السمة "*،*" إلى أن نسب الانقسام متساوية - 50% لكل منهما. إذا قمت بتحديد، على سبيل المثال، "20%،*"، فسيتم منح 20% فقط للإطار الأول، وسيتم منح باقي المساحة للإطار الثاني. ويمكن للمستخدم تغيير هذه النسب عن طريق سحب حدود الإطارات بالماوس، ولكن من الممكن حظر هذا الإجراء. للقيام بذلك، تحتاج إلى إضافة سمة noresize إلى علامة إطار معين. يمكنك أيضًا تحديد حجم الهوامش الرأسية والأفقية من الإطار المجاور (سمات عرض الهامش وارتفاع الهامش): من الممكن تعيين قواعد سلوكية لأشرطة التمرير لكل إطار على حدة. ويتم ذلك باستخدام سمة التمرير، والتي يمكن أن تحتوي على واحدة من ثلاث قيم محددة مسبقًا. إذا قمت بتحديد التمرير = "تلقائي"، فستظهر أشرطة التمرير عندما لا تتناسب محتويات الإطار مع حدوده. إذا كانت الإجابة "نعم" - فستكون الخطوط موجودة باستمرار، بغض النظر عما إذا كانت هناك حاجة إليها. إذا كانت الإجابة "لا" - فهذا يعني أنه تم تعطيل أشرطة التمرير لهذا الإطار.

بناءً على المعلومات المقدمة في الخطوتين السابقتين، تحتاج إلى إنشاء كود html الأكثر ملاءمة لحل مشكلتك. بعد ذلك، كل ما تبقى هو إدراجه في الكود المصدري للصفحة. للقيام بذلك، يمكنك استخدام محرر الصفحة لنظام إدارة موقعك - ​​افتح الصفحة المطلوبة فيه، وقم بالتبديل إلى وضع تحرير كود HTML ولصق الكود الخاص بك في المكان المطلوب على الصفحة. أو يمكنك تنزيل ملف الكود المصدري للصفحة باستخدام مدير الملفات الخاص بإدارة الاستضافة أو نظام إدارة الموقع، وفتحه في محرر النصوص ولصق الكود فيه. ثم استخدم نفس الطريقة لتحميل الكود الذي تم تغييره مرة أخرى إلى الخادم.

مرحبا عزيزي القراء لموقع بلوق. اليوم سنتحدث عن الإطارات في HTML. من الواضح أننا سنبدأ من البداية، أي نوع هذا الحيوان. سنتحدث أيضًا عن الحاضر (الإطار) والمستقبل (Iframe) لهذه العناصر في الإصدار الحالي من لغة ترميز النص التشعبي وفي معيار Html 5 الجديد مع .

في نهاية المقالة، بعد وصف تفصيلي لعملية إنشاء الإطارات المضمنة وبنيتها الكلاسيكية في كود HTML (نادرا ما تستخدم بالفعل)، سنتطرق إلى أهمية بناء موقع عليها، ونناقش أيضًا إمكانية طرق استخدامها في الفترة الزمنية الحالية باستخدام مثال مدونتي.

ما هو وكيف يختلف Iframe عن الإطار؟

ما هذا؟ اتضح أنه يمكن استخدامها ليس فقط على مواقع الويب، ولكن أيضًا في أي تطبيقات للبرامج، ولكنها تختلف في أنه سيتم تقسيم نافذة صفحة الويب أو التطبيق إلى عدة مناطق، يتم تحميل مستند منفصل في كل منها . علاوة على ذلك، تتصرف مناطق الإطار هذه بشكل مستقل عن بعضها البعض.

ربما يكون المثال الأكثر وضوحًا لاستخدامها، والذي واجهه جميعكم تقريبًا، هو ما يسمى بملفات المساعدة التي قامت العديد من البرامج بتثبيتها على جهاز الكمبيوتر الخاص بك.

يتم تحميل الملف الذي يحتوي على قائمة المساعدة في النافذة اليسرى، ويتم عرض المستند المقابل لعنصر القائمة المحدد في النافذة اليمنى. من الجدير بالذكر أن هذا الهيكل يسمح لك بعدم إعادة تحميل الملف بالقائمة في النافذة اليسرى عند فتح مستند جديد في النافذة اليمنى. هذا هو بالضبط ما تتكون منه الميزة الرئيسية لاستخدام الإطاراتفي HTML.

في الواقع، يجب تفسير اسم هذه العناصر على أنه نافذة مستقلة. بمساعدة الإطارات، لدينا الفرصة لتقسيم نافذة واحدة كبيرة إلى عدة أجزاء، والتي بدورها يمكن أن تكون بمثابة أجهزة استقبال لمستندات منفصلة مستقلة عن بعضها البعض (الصفحات والنصوص والصور ومقاطع الفيديو وما إلى ذلك).

كيف يتم إنشاء بنية الإطار في لغة ترميز النص التشعبي؟ إذا تحدثنا عن معيار Html 4.01 (حسب التصنيف)، وهو المعيار الرئيسي في الوقت الحالي، فسيتم استخدام ثلاثة عناصر لهذا - الإطار ومجموعة الإطارات وNoframes.

Iframe - إطار مدمج بمعيار Html 5

إذا تحدثنا عن معيار Html 5 (مستقبلنا، وبعض عناصره مدعومة بالفعل من قبل العديد من المتصفحات)، فلن تكون هناك علامات Frame وFrameset وNoframes، بالإضافة إلى بنية الإطار الكلاسيكية بدلاً من ذلك؛ علامة Iframe واحدة (إطار مضمن)، والتي سنتحدث عنها في البداية، ثم سنوجه انتباهنا إلى المخطط الكلاسيكي من الإصدار 4.01، والذي هو قيد الاستخدام بالفعل الآن.

Iframe، على عكس الكلاسيكيات التي تمت مناقشتها أدناه، لا يتطلب استبدال علامة Body بعلامات Frameset. أولئك. ويمكن إدراج هذه العلامة في الصفحات العادية، على سبيل المثال، داخل فقرة أو في أي مكان آخر. يشبه هذا العنصر في جوهره علامة Img التي تناولناها بالفعل.

وهو عنصر مضمّن يحتوي على محتوى قابل للاستبدال لأنه يتصرف تمامًا مثل العنصر المضمن، ولكنه يعرض محتوى خارجي غريب. لا يوجد سوى أربعة عناصر من هذا القبيل في لغة HTML - Img وIframe وObject وEmbed. لذلك، يشير بطلنا إلى وجود ملف خارجي سيتم تحميله في منطقة يتم تحديد حجمها باستخدام سمات هذه العلامة.

الذي - التي. يعد Iframe عنصرًا مخزنًا يتم تحميل كائن خارجي (مثل الفيديو) إليه. وللإشارة إلى المسار إلى هذا الملف الذي يجب تحميله على الصفحة، استخدم سمة Src الخاصة. ولكن على عكس IMG، يتم إقران عنصر Iframe، أي. هناك أيضًا علامة إغلاق:

يوضح هذا المثال الإخراج على صفحة فيديو Youtube باستخدام Iframe. من أجل تحديد مساحة الإطار (النافذة) حيث سيتم تحميل الملف الخارجي، يتم توفير السمات العرض والارتفاع، والتي يتم تحديد قيمها بالبكسل:

أولئك. تنشئ هذه العلامة منطقة يتم فيها تحميل بعض الكائنات الخارجية (لا يهم ما إذا كانت من موقعك أو من مورد آخر). يتم تحديد عرض المنطقة وارتفاعها باستخدام العرض والارتفاع، وتحدد سمة Src المسار إلى هذا الكائن.

ورث عنصر Iframe كل هذه السمات من العلامات المضمنة المشابهة ذات المحتوى المستبدل (مثل Img المذكور أعلاه). حسنًا، لقد أخذ أيضًا سمات من الصور هسبيس و فسباس، والتي تسمح لك بتعيين المسافات البادئة من حدود الإطار إلى النص الذي يلتف حوله.

ومن المهم أيضًا أن يتم تنفيذ محاذاة الإطار المدمج بنفس الطريقة التي يمكننا رؤيتها عند دراسة الصور بتنسيق Html - . كل نفس محاذاة، ولكن بالنسبة لعلامة Iframe ذات القيم المحتملة أسفل وأعلى ووسط ويسار ويمين.

لكن هذا العنصر أخذ أيضًا العديد من السمات من علامة الإطار من بنية الإطار الكلاسيكية، والتي سنتحدث عنها بتفصيل كبير أدناه في النص. تتضمن هذه السمات الاسم، الذي يمكن استخدام قيمته كقيمة بحيث يتم فتح المستند الذي تحتاجه عند النقر فوق الارتباط في نافذة هذا الإطار (اقرأ المزيد أدناه).

أيضًا في Iframe، تم ترحيل سمة Frameborder من علامة الإطار، والتي تحتوي على قيمتين فقط - إما 0 (لا يتم عرض الإطار المحيط بالإطار) أو 1 (الإطار مرئي). القيمة الافتراضية هي Frameborder=1، لذا لإزالتها ستحتاج إلى إدخال Frameborder='0':

تم أيضًا نقل سمة التمرير من الإطار إلى هذا العنصر، الذي له قيمة افتراضية تلقائية - ستظهر أشرطة التمرير في الإطار حسب الحاجة عندما يكون المحتوى أكبر من حجم النافذة المخصصة لعرضه.

حسنًا، تم أيضًا نقل سمات Marginwidth وMarginheight من عنصر الإطار. سيتم مناقشتها بالتفصيل أدناه في النص، ولكن باختصار - فهي تسمح لك بتعيين المسافة البادئة في العرض والارتفاع من حواف الإطار إلى المحتوى الذي تم وضعه فيه.

كما ذكرت سابقًا، المثال الواضح لاستخدام Iframe هو:

من خلال إدراج إطار Iframe مباشرةً في صفحة ويب، ستتلقى مخرجات فيديو من YouTube. نستنتج أن هذا العنصر عبارة عن تقاطع بين العناصر المضمنة ذات المحتوى المستبدل، وفي الواقع الإطارات الكلاسيكية، والتي سنناقشها الآن.

الإطارات المستندة إلى علامات الإطار ومجموعة الإطارات - بنيتها

لذا، فإن إنشاء بنية إطار كلاسيكية يبدأ بما تكتبه في كود Html بدلاً من علامة فتح وإغلاق النص، والتي عادةً ما يجب أن تكون موجودة في أي مستند، واستبدالها بحاوية قائمة على العناصر مجموعة الإطارات.

النقطة الأساسية هي أنه لا يمكن استخدام عنصر النص في هذه الحالة - إما النص (للمستند العادي) أو مجموعة الإطارات (عند إنشاء بنية إطار المستند):

يتم إنشاء كل إطار نقوم بإنشائه داخل الإطار الرئيسي باستخدام عنصر منفصل إطار. هذه العلامة فردية وفيها قمنا بتعيين المسار إلى المستند الذي سيتم تحميله في هذه النافذة.

أما العنصر الثالث الذي لم نتطرق إليه بعد فهو noframes. إنه مقترن ويسمح لك بكتابة بعض النص بداخله، والذي سيتم معالجته بواسطة المتصفح وعرضه على صفحة ويب فقط إذا كان نفس المتصفح (أو جهاز عرض آخر) لا يدعم الإطارات. يمكن أن يحدث هذا، على سبيل المثال، إذا كنت تستخدم متصفحًا للأجهزة المحمولة.

عادةً ما تضيف Noframes ليس فقط معلومات حول الوضع الحالي مع استحالة معالجة بنية الإطار، ولكنها تضيف أيضًا القدرة على الانتقال إلى صفحات أخرى حيث يمكنك مواصلة العمل دون استخدامها. من الصعب أن نقول أي شيء آخر عنه، لذلك دعونا نستمر.

اتضح أن عنصر مجموعة الإطارات، المستخدم بدلاً من علامة الجسم، يشغل كل المساحة المخصصة لمنطقة العرض، وسيتم إنشاء الإطارات داخل هذه المنطقة باستخدام عناصر الإطار الفردية. وفي هذا الصدد، يطرح السؤال - كيفية تقسيم منطقة المشاهدة بين النوافذ المنفصلة، ​​أو بمعنى آخر، كيفية ضبط حجم كل منها.

يتم ذلك عن طريق إضافة السمات المناسبة إلى عنصر مجموعة الإطارات. هناك اثنان منهم - كولز والصفوف. يقوم الخيار Cols بتعيين تقسيم النافذة الكبيرة إلى إطارات أو أعمدة رأسية، بينما يسمح لك الخيار Rows بتقسيمها إلى نوافذ أو صفوف أفقية.

إنشاء بنية تعتمد على مجموعة الإطارات وخصائص Cols وRows الخاصة بها

قيم Cols وRows لعلامة Html Frameset هي أرقام مفصولة بفواصل (بدون مسافات). تحدد هذه الأرقام نسب النوافذ التي نريد الحصول عليها نتيجة لذلك. لذلك، بغض النظر عن عدد الأرقام المفصولة بفواصل المكتوبة في Cols أو Rows، فإن عدد الإطارات التي لدينا سيكون هو النتيجة.

على سبيل المثال، باستخدام هذا الترميز، سنحصل على ثلاثة أعمدة رأسية يتوافق عرضها مع النسب 2:5:3.

نظرًا لأننا قمنا بتعيين النسب لثلاثة إطارات، فسيتعين علينا تضمين ثلاثة عناصر إطار بين علامتي فتح وإغلاق مجموعة الإطارات، حتى بدون تحديد سمات إضافية:

ونتيجة لذلك، فإن هيكل الإطار الخاص بنا، والذي يتكون من ثلاث نوافذ فارغة، سيبدو كما يلي:

في هذا المثال، قمنا بتعيين أحجام النوافذ (الإطار) باستخدام النسب المئوية، والتي يتم أخذها من عرض منطقة العرض (وهذا هو الحال عند استخدام Cols) أو من ارتفاعها (الصفوف). عند تغيير إطار العرض، سيتم الحفاظ على العلاقة المئوية بين أحجام الإطارات. ولكن بدلاً من النسب المئوية، يمكنك أيضًا استخدام الأرقام التي تعني ببساطة. هنا، أعتقد أنه لا ينبغي أن تنشأ أي صعوبات في الفهم.

ولكن هناك أيضًا خيار غير عادي إلى حد ما في تعيينات الحجم التي تبدو النجمة "*". علاوة على ذلك، يمكن أن تكون إما "*" فقط أو علامة النجمة مع رقم في المقدمة، على سبيل المثال، "3*". حاجة ذكية تشبه النسب المئوية جدًا وتعني أننا نقسم المساحة الخاصة بالـ Frame بشكل متناسب.

لنلقي نظرة على مثال. الآن دعنا نختار تقسيم إطار العرض إلى صفوف أفقية باستخدام الصفوف:

ماذا يعني هذا الإدخال؟ سيتم تقسيم منطقة المشاهدة بأكملها المتاحة لنا عموديًا إلى ثلاثة خطوط. سيتم أخذ ارتفاع الأول عند 200 بكسل، والثاني عند 500، لكن السطر الثالث سيشغل كل المساحة المتبقية في الارتفاع، لأن تم استخدام "*" كحجمه.

ما هو جدير بالملاحظة هو أن القيمتين "*" و "1*" تعنيان نفس الشيء - فنحن نقسم كل المساحة المتبقية إلى مساحة واحدة ونعطي هذا الجزء لهذا الإطار (حسنًا، أي كل المساحة المتبقية).

لكن انظر ماذا يحدث إذا استخدمت القيمة "*" مع رقم لتقسيمه بشكل متناسب:

ما رأيك في أبعاد الإطار ستكون في هذه الحالة؟ من الواضح أن السطر الثاني سيكون ارتفاعه بالتأكيد 100 بكسل. ولكن كيف سيتم تقسيم المساحة المتبقية في الارتفاع بين الصف الثالث والصف الأول؟

من السهل جدًا إجراء الحساب - فقط أضف أربعة (4*) إلى اثنين (2*) واقسم على هذا المقام (تذكر الكسور من المنهج الدراسي) اثنين وأربعة. أولئك. لقد حصلنا على أن العمود الأول مع الإطار سوف يشغل ثلث المساحة المتبقية في الارتفاع، والعمود الثالث سوف يشغل الثلثين. أو بمعنى آخر يكون الثالث ضعف الأول:

يمكنك استخدام الطرق الثلاث لتحديد حجم نوافذ الإطارات في سمة واحدة، على سبيل المثال:

نتيجة لذلك، سنحصل على عمود الإطار الأول بعرض عشرة بالمائة من المساحة المتاحة بأكملها، والثاني - 100 بكسل، والثلاثة المتبقية سيكون لها عرض بنسب أربعة وثلاثة وتسعين من المساحة المتاحة بالكامل. مساحة العرض المتبقية. لذلك كل شيء بسيط وواضح.

إذا كنت ترغب في تقسيم النافذة الرئيسية ليس فقط إلى إطارات أفقية وعمودية، ولكن، على سبيل المثال، إلى مجموعاتها، فيمكنك استخدام البنية المتداخلة لعناصر مجموعة الإطارات بشكل منفصل للأعمدة وبشكل منفصل للصفوف. على سبيل المثال، للحصول على البنية الموضحة في لقطة الشاشة أدناه، يكفي استخدام البنية التالية:

أولئك. أولاً، نستخدم "frameset cols=”20%,80%"" لتقسيم كل المساحة المتوفرة إلى عمودين رأسياً وتعيين محتويات العمود الأيمن بعلامة "frame"، ولكن بدلاً من إضافة عنصر "frame" بالنسبة للعمود الأيسر، نفتح "صفوف الإطارات الجديدة ="10%،*"".

وبمساعدته نقوم بتقسيم العمود الأيمن إلى سطرين بإطارات، يتم تعيين محتوياتها باستخدام علامتي "إطار"، وبعد ذلك نغلق كلتا حاويتي "مجموعة الإطارات". كل شيء بسيط ومنطقي.

حدد المسار في سمة Src لعنصر الإطار

لكننا تحدثنا جميعًا عن عنصر Frameset وسماته Cols وRows، والتي من خلالها نشكل البنية ونحدد أحجامها. الآن دعونا نتعرف على كيفية عرض المستندات الضرورية في الإطارات المطلوبة وكيفية تكوين التفاعل بين نوافذها.

فكيف نتحكم في مظهر النوافذ التي نقوم بإنشائها؟ كل هذا موجود في سمات علامة الإطار. أول واحد يستحق الذكر هو سرك. لقد رأينا ذلك بالفعل في علامة Img عندما نظرنا إلى إدراج الصور في كود Html. لم يتغير جوهره ولا يزال يسمح لك بتحديد المسار إلى المستند الذي يجب تحميله في الإطار.

يمكن تحديد المسار إلى المستند في Src كـ . تُستخدم المسارات النسبية عادةً للمستند الموجود على المورد الخاص بك، ولكنك ستحتاج إلى مسارات مطلقة عندما تريد تحميل مستند من موقع آخر إلى نافذة إطار.

إذا لم يتم تحديد سمة Src التي تشير إلى المسار إلى المستند المطلوب، فسيتم تحميل مستند فارغ في النافذة. أنا شخصياً فعلت شيئًا مشابهًا لمدونتي (كعنصر تنقل إضافي) وفي نفس الوقت أنشأت مجلدًا منفصلاً له على خادم الاستضافة ووضعت هناك ليس فقط ملف HTML ببنية إطار (الذي أسميته الفهرس) .html)، ولكن يتم أيضًا تحميلها جميعًا في نوافذ المستندات المختلفة، بالإضافة إلى ملفات الصور التي تم استخدامها كخلفيات.

لذلك، كان من الأسهل بالنسبة لي استخدام الروابط النسبية في سمة Src لعلامة الإطار:

الجدير بالذكر أنه إذا قمت باستبدال جميع الروابط الواردة في هذا الكود من النسبية إلى المطلقة (مثل https://site/navigator/joomla.html) وفتحت هذا الملف في المتصفح، فسيتم تحميل المستندات المحددة في الإطار من الخادم الخاص بي وسترى صورة مماثلة في متصفحك. علاوة على ذلك، لا يهم مكان وجود ملفك مع بنية الإطار (index.html) - على جهاز الكمبيوتر الخاص بك أو على الاستضافة.

في المثال الموضح في الشكل، يتم تحميل صفحة تحتوي على قائمة معينة، وهي قائمة عادية، في نافذة الإطار الأيسر. ولكن ما يهم ليس كيفية تشكيل القائمة، ولكن ما يحدث بعد النقر على أي من الروابط الخاصة بها.

إذا قمت بذلك، فسيحدث كل شيء تمامًا كما ينبغي - سيتم فتح المستند في النافذة اليمنى السفلية. ولكن لهذا اضطررت إلى استخدام خدعة صغيرة واحدة، لأنه في الإصدار الافتراضي، تم فتح المستند بالحجم الكامل للنافذة، واستبدال بنية الإطار، والتي لم أكن بحاجة إليها على الإطلاق، لأن قائمة التنقل في الإطارات اليسرى والعلوية اختفى.

كيفية فتح المستندات عبر رابط في الإطار

لذلك، عندما تحدثنا عن الارتباطات التشعبية، ذكرنا سمة العلامة "A" كـ Target=_blank. هل تتذكر ما هو الغرض منه؟ من الصحيح فتح المستند المرتبط في نافذة جديدة. افتراضيًا، يجب أن يتم فتحه في نفس النافذة، وهو ما يعادل الهدف = "_self".

لكن هذه فرص هدفليست محدودة. اتضح أنه يمكنك إضافة قيمة إليها كاسم الإطار، والتي تم تحديدها مسبقًا في سمة الاسم الخاصة لعلامة الإطار. ثم لن يتم فتح المستند عبر هذا الرابط في نفس النافذة، حيث يشغل كل مساحته، ولكن في الإطار الذي حددته. انها واضحة؟ إذا لم يكن الأمر كذلك تماما، فسيصبح واضحا الآن عندما نحلل المثال.

لذلك، دعونا نعود إلى مثالنا الموضح في الشكل أعلاه. نحتاج إلى فتح الصفحات باستخدام روابط من النافذة اليسرى في الإطار الأيمن السفلي (الكبير). لذلك، تحتاج أولاً إلى تسمية هذه النافذة الكبيرة باستخدام سمة الاسم في علامة الإطار.

لقد صنعوها وأطلقوا عليها اسم "ktona". يمكنك الآن فتح الملف الذي تم تحميله كقائمة في النافذة اليسرى بأمان وإضافة سمة Target="ktona" إلى جميع علامات A الموجودة فيه:

تاريخ Joomla ومكون VirtueMart

بالطبع، بمساعدة أداة البحث والاستبدال لن يكون من الصعب وضعها لجميع الارتباطات التشعبية، ولكن لماذا تحميل الكود دون داعٍ عندما تكون لدينا فرصة كبيرة للاستخدام علامة قاعدة خاصةوالتي سبق أن ذكرناها في نفس المقالة عن الارتباطات التشعبية، عندما تحدثنا عن استخدام الهدف الفارغ.

يكفي فقط وضع العنصر الأساسي target="ktona" بين علامتي الفتح والإغلاق وستفتح جميع الروابط في كود Html الخاص بهذا المستند صفحات جديدة في الإطار المحدد المسمى "ktona":

بالمناسبة، إذا أخذنا في الاعتبار الأداة التي كانت موجودة لدي كمثال، فإننا مازلنا بحاجة للتأكد من أن جميع الروابط من النافذة الأفقية العلوية تفتح صفحاتها في الإطار الرأسي الأيسر، والذي يعمل كقائمة يسرى. ما الذي يجب القيام به لهذا؟

حسنًا، أولاً، عليك تسمية الإطار العمودي الأيسر باسم:

وفي الملف الذي تم تحميله في النافذة العلوية (gor.html)، تحتاج إلى إضافة العنصر الأساسي target="gor":

هذا كل شيء، الآن قمنا بكل شيء بشكل صحيح. جميع المستندات التي تتبع الروابط من الإطار العلوي تفتح في النافذة اليسرى، وجميع الروابط منها ستفتح المستندات في الإطار المركزي والأكبر. في رأيي، كل شيء بسيط ومنطقي.

سمات علامة الإطار لتخصيص مظهر النوافذ

دعونا نرى الآن ما هي السمات الأخرى غير Src والاسم التي يمكن استخدامها في علامة الإطار لتخصيص مظهر الإطارات. دعنا نبدء ب التمرير. باستخدامه، يمكننا تكوين عرض أشرطة التمرير لكل نافذة من بنية الإطار الخاص بك بشكل منفصل.

يحتوي التمرير على قيمة افتراضية هي تلقائي - سيقرر المتصفح تلقائيًا، بناءً على حجم المستند الذي تم تحميله في الإطار، ما إذا كان سيتم عرض شريط التمرير أم لا. إذا لم يتم احتواء المستند بالكامل في النافذة، فسيظهر شريط تمرير، مما يسمح لك بعرضه بالكامل حتى النهاية.

يمكنك أيضًا استخدام القيمتين نعم (سيتم عرض أشرطة التمرير في النافذة دائمًا، حتى إذا كان المستند مناسبًا لها تمامًا) ولا (لن تظهر أشرطة التمرير أبدًا على الإطلاق، حتى لو لم يكن هناك جزء من المستند مناسبًا) كقيم للتمرير.

في الأداة التي كانت موجودة لدي، استخدمت القيمة الافتراضية Auto وظهرت أشرطة التمرير في الإطارات حسب الحاجة:

السمة التالية لعلامة الإطار هي نوريسيزي- مفرد (ليس له قيم). من خلال تسجيله، ستحظر بالتالي تغيير حجمه، والذي يتم بشكل افتراضي عن طريق سحب حدود الإطارات بالماوس.

عند تحريك مؤشر الفأرة إلى الحد، سترى أن المؤشر سيتحول إلى سهم برأسين والآن، بالضغط على زر الفأرة الأيسر، يمكنك تحريك الحد كما يحلو لك. يفرض Noresize حظرا على هذا التعمد (عند تحريك مؤشر الماوس إلى حدود النوافذ، لن ترى السهم ثنائي الاتجاه بعد الآن).

سمة بصرية أخرى هي إطار الحدود. باستخدامه، يمكنك تحديد ما إذا كنت تريد رسم إطار (حدود) بين الإطارات أم لا. يمكن أن يحتوي Frameborder على قيمتين محتملتين فقط - إما 0 (لا ترسم إطارًا) أو 1 (إظهار الحدود). القيمة الافتراضية بالطبع هي 1.

هناك دقة واحدة. إذا كنت تريد إزالة الحد المرئي، فسيتعين عليك إضافة Frameborder=0 إلى جميع علامات الإطار الخاصة بالإطارات التي تريد إزالة الحدود المرئية بينها.

حسنًا، لا يزال يتعين علينا النظر في بعض سمات علامة الإطار - عرض الهامش وارتفاع الهامش، الذي يضبط المساحة المتروكة في العرض (اليمين واليسار) والارتفاع (أعلى وأسفل) من حدود النافذة إلى المحتوى الذي تم تحميله فيها (الرقم يعني عدد بكسلات الحشوة):

لماذا لا يمكنك إنشاء موقع ويب على الإطارات؟

دعونا نرى ما هو العيب الأساسي للهياكل الكلاسيكية، والذي يضع حدًا لاستخدامها عند إنشاء موقع ويب. وهو يتألف من حقيقة أنه وفقا لهيكل الإطار هذا من المستحيل تتبع حالتها.

يمكن أن تحتوي الهياكل المعقدة على آلاف الحالات المختلفة (متغيرات المستندات المفتوحة في نوافذ إطارات مختلفة)، لكن عنوان URL الخاص بهذه البنية ذاتها لا يتغير. وبسبب هذا سيكون هناك لا يمكن استخدام الإشارات المرجعية للمتصفحأو أرسل روابط لصفحاتك المفضلة إلى مستخدمين آخرين. لماذا؟

نظرًا لأن العنوان يظل دون تغيير، وعندما تفتحه من الإشارات المرجعية للمتصفح الخاص بك، أو من رسالة بريد إلكتروني، ستتلقى صفحة بها حالة البداية لبنية الإطار، وليس الحالة التي ترغب في حفظها.

على الرغم من أنه يمكن حل هذه المشكلة بالطبع، ولكن ليس باستخدام أدوات HTML، ولكن بمساعدة الخادم (على سبيل المثال، Php) أو لغات برمجة العميل (JavaScript)، ولن تكون هذه الحلول فعالة بنسبة مائة بالمائة. في الواقع، تتيح لك هذه الحلول إضافة بيانات إضافية حول حالتها الحالية إلى عنوان URL الخاص ببنية الإطار، ولكن ليس من السهل القيام بذلك، ولن تكون الموثوقية مطلقة.

هذا هو العيب الأول لاستخدام الإطارات لإنشاء مواقع الويب وهو عيب كبير جدًا، ولكن هناك عيبًا آخر كبير. بالطبع، تعلمت محركات البحث منذ فترة طويلة فهرستها واستخراج عناوين تلك المستندات التي يتم تحميلها في نوافذها. المشكلة مختلفة.

عندما ينتقل المستخدم من نتائج بحث Yandex أو Google إلى موقع الويب الخاص بك المبني على أساس بنية الإطار، سيتم فتح المستند الذي تم تحميله في أحد الإطارات فقط، وليس البنية بأكملها. هل تفهم ما أتحدث عنه؟

سيرى المستخدم المستند و لن ترى التنقل على موقعكلأنه سيتم حمايته في النوافذ الأخرى، ويتم تحميلها فقط كجزء من الهيكل بأكمله.

ونتيجة لذلك، يصبح الموقع المبني على الإطارات غير قابل للاستخدام. على الرغم من وجود حلول لهذه المشكلة مرة أخرى بناءً على البرامج النصية للخادم، عندما يتم تنفيذ إعادة التوجيه من عناوين المستندات الفردية إلى بنية الإطار الموجودة في الحالة المطلوبة، إلا أن هذا مرة أخرى صعب للغاية وغير موثوق به دائمًا.

بشكل عام، يمكن استخلاص الاستنتاج بشكل لا لبس فيه - ليست هناك حاجة لإنشاء مواقع الويب على الإطارات. ولكن يتم استخدامها باستمرار لإنشاء مساعدة لمختلف التطبيقات، ويمكن أن تكون مفيدة في أشياء صغيرة أخرى.

على سبيل المثال، قمت بإنشاء بنية إطار، والتي أسميتها "Navigator" (الآن تمت إزالتها مؤقتًا) والتي أصبحت نوعًا من القائمة الخارجية الموسعة لمدونتي، والتي يبدو لي أنها يجب أن تبسط العمل مع المورد وبالتالي فإن تحسين "لا معنى له" له تأثير قوي جدًا جدًا على الترويج للموقع.

ولكن، ومع ذلك، من أجل تجنب أي مشاكل مع محركات البحث، قمت بإغلاق بنية الإطار بالكامل من العرض، وكذلك، فقط في حالة إضافة علامة تعريف Rodots إلى جميع ملفات Html الخاصة بها، وحظر فهرستها:

جوملا

لكن كل هذه القيود تنطبق فقط على الهياكل الموجودة على علامات الإطار ومجموعة الإطارات و الإطارات المضمنة في علامات Iframeلا تحتوي على أي عيوب مرئية، ويمكن بل ويجب استخدامها في مشاريعك، على الأقل لإدراج مقاطع فيديو من YouTube.

كل التوفيق لك! نراكم قريبا على صفحات موقع المدونة

أنت قد تكون مهتم

توجيهات التعليق وDoctype في كود Html، بالإضافة إلى مفهوم العناصر المضمنة والكتلة (العلامات)
التضمين والكائن - علامات HTML لعرض محتوى الوسائط (فيديو، فلاش، صوت) على صفحات الويب
Img - علامة HTML لإدراج صورة (Src)، ومحاذاة النص وتغليفه حوله (محاذاة)، وكذلك ضبط الخلفية (الخلفية)
ما هي لغة ترميز النص التشعبي Html وكيفية عرض قائمة بجميع العلامات في مدقق W3C تحديد، خيار، منطقة النص، التسمية، مجموعة الحقول، وسيلة الإيضاح - علامات Html لشكل القوائم المنسدلة وحقول النص
قوائم في كود Html - علامات UL، OL، LI وDL
الخط (الوجه والحجم واللون) وعلامات الاقتباس والعلامات المسبقة - تنسيق النص القديم بتنسيق HTML خالص (لا يتم استخدام CSS)
كيفية تعيين الألوان في أكواد Html وCSS، واختيار ظلال RGB في الجداول، ومخرجات Yandex وبرامج أخرى

بطاقة شعار .

بناء الجملة

خيارات

align يحدد كيفية محاذاة الإطار إلى الحافة، وكذلك كيفية التفاف النص حوله. Frameborder يضبط ما إذا كان سيتم عرض حد حول الإطار أم لا. الارتفاع ارتفاع الإطار. hspace المسافة الأفقية بين الإطار والمحتوى المحيط به. اسم اسم الإطار. التمرير طريقة لعرض شريط التمرير في الإطار. src المسار إلى الملف الذي سيتم تحميل محتوياته في الإطار. vspace المسافة العمودية من الإطار إلى المحتوى المحيط به. العرض عرض الإطار.

علامة الإغلاق

مطلوب.

مثال 1: استخدام العلامة


وصف معلمات العلامة

الحجج

absmiddle يقوم بمحاذاة منتصف الإطار إلى منتصف السطر الحالي. baseline يقوم بمحاذاة الإطار مع الخط الأساسي للخط الحالي. Bottom يقوم بمحاذاة الحد السفلي للإطار مع النص المحيط. left يقوم بمحاذاة الإطار إلى الحافة اليسرى للنافذة. الأوسط يقوم بمحاذاة منتصف الإطار مع الخط الأساسي للخط الحالي. يمين يقوم بمحاذاة الإطار إلى الحافة اليمنى للنافذة. texttop تتم محاذاة الحد العلوي للإطار مع أطول عنصر نص في السطر الحالي. أعلى تتم محاذاة الحد العلوي للإطار مع العنصر الأطول في السطر الحالي.

الخيارات الأكثر شيوعًا هي اليسار واليمين، مما يؤدي إلى التفاف النص حول الإطار. للتأكد من أن النص لا يتناسب بشكل محكم مع محتويات الإطار، يوصى بوضع العلامة

لوريم إيبسوم دولور سيت أميت، consectetuer adipiscing إيليت...

معلمة الإطار

وصف

افتراضيًا، يتم رسم إطار ذو تأثير ثلاثي الأبعاد حول محتويات الإطار. لإخفائه، استخدم معلمة Frameborder.

بناء الجملة


الحجج

نعم (أو 1) يعرض حدًا حول الإطار. no (أو 0) يخفي الحدود حول الإطار.

القيمة الافتراضية

مثال 3: إخفاء الحد الأصلي حول الإطار





علامة IFRAME، معلمة حدود الإطار




معلمة الارتفاع والعرض

وصف

لتغيير حجم الإطار باستخدام HTML، يتم توفير معلمات العرض والارتفاع. يمكنك استخدام القيم بالبكسل أو النسب المئوية. إذا تم تعيين إدخال النسبة المئوية، فسيتم حساب أبعاد الإطار بالنسبة للعنصر الأصلي - الحاوية التي توجد بها العلامة

الحجج

أي عدد صحيح موجب بالبكسل أو النسبة المئوية.

القيمة الافتراضية

العرض - 300 بكسل، الارتفاع - 150 بكسل.

مثال 4: عرض الإطار وارتفاعه





علامة IFRAME، معلمة العرض




معلمة HSPACE وVSPACE

لغة البرمجة: 3.2 4 أتش تي أم أل: 1.0 1.1

وصف

بالنسبة لأي إطار، يمكنك تعيين حشوة أفقية ورأسية غير مرئية باستخدام معلمات hspace وvspace، على التوالي. وينطبق هذا بشكل خاص عندما يلتف النص حول محتويات الإطار. في هذه الحالة، بحيث لا يتم "تشغيل" النص بإحكام على حدود الإطار، فمن الضروري إضافة مساحة فارغة حوله.

بناء الجملة


الحجج

أي عدد صحيح موجب بالبكسل.

القيمة الافتراضية

مثال 5: هوامش حول الإطار





علامة IFRAME، معلمة hspace




اسم المعلمة

وصف

في مستند HTML عادي، عندما تتبع رابطًا، يتم استبدال المستند الحالي في نافذة المتصفح بآخر جديد. لتوجيه المحتوى إلى إطار، يجب أن يكون له اسم فريد، محدد بواسطة سمة الاسم. في هذه الحالة، عند إنشاء رابط للعلامة تحتاج إلى تحديد المعلمة الهدف، وقيمتها هي اسم الإطار.

بناء الجملة

الحجج

يتم تحديد الاسم باستخدام مجموعة من الأحرف، بما في ذلك الأرقام والحروف. عند الإشارة إلى إطار بالاسم، استخدم نفس التهجئة كما في معلمة الاسم.

القيمة الافتراضية





علامة IFRAME، معلمة الاسم


تشيبوراشكا

تمساح جينا

شابوكلياك


معلمة التمرير

وصف

إذا لم تتناسب محتويات الإطار مع الأبعاد المخصصة، فستظهر أشرطة التمرير تلقائيًا للسماح لك بعرض المعلومات. في بعض الحالات، تعمل أشرطة التمرير على تقسيم تصميم صفحة الويب، لذا قد ترغب في تعطيلها. للتحكم في عرض أشرطة التمرير، استخدم معلمة التمرير.

بناء الجملة

الحجج

تتم إضافة أشرطة التمرير التلقائية بواسطة المتصفح فقط عند الضرورة، عندما يتجاوز محتوى الإطار الجزء المرئي منه. لا يمنع عرض أشرطة التمرير. نعم يتسبب دائمًا في ظهور أشرطة التمرير، بغض النظر عن كمية المعلومات.

القيمة الافتراضية

مثال 7: إخفاء أشرطة التمرير





علامة IFRAME، معلمة التمرير




معلمة SRC

وصف

يحدد عنوان الملف (URL) الذي سيتم تحميله في الإطار. يمكن أن يكون هذا مستند HTML أو صورة أو برنامج خادم. من المقبول استخدام ليس فقط المسار إلى الملف، ولكن أيضًا اسم وظيفة JavaScript التي تُرجع القيمة.

بناء الجملة

الحجج

القيمة هي المسار الكامل أو النسبي للملف.

القيمة الافتراضية

مثال 8. مسار الملف





علامة IFRAME، معلمة src




علامات الإطار

  • يحدد الإطار خصائص الإطار الفردي الذي تنقسم إليه نافذة المتصفح.
  • تحدد FRAMESET بنية الإطارات على صفحة الويب. تقسم الإطارات نافذة المتصفح إلى مناطق منفصلة تقع بالقرب من بعضها البعض. تقوم كل منطقة من هذه المناطق بتحميل صفحة ويب مستقلة محددة باستخدام علامة FRAME.
  • ينشئ IFRAME إطارًا عائمًا موجودًا داخل مستند عادي، ويسمح لك بتحميل أي مستندات مستقلة أخرى في منطقة ذات أحجام محددة.
  • يتم عرض NOFRAMES في المتصفح عندما لا يدعم الإطارات ولا يمكنه تفسيرها. تتجاهل المتصفحات التي تعمل مع الإطارات محتويات علامة NOFRAMES تمامًا.
  • عنصر

    إطارات

    ماذا تعمل، أو ماذا تفعل

    الفرق الرئيسي بين