Як правильно виглядає HTML код iframe. Вставка iFrame у матеріал Joomla

Як правильно виглядає HTML код iframe. Вставка iFrame у матеріал Joomla

Одним із найчастіших способів зараження комп'ютера відвідувачів сайтів є використання вразливості, пов'язаної з переповненням буферів браузерів користувачів. Рецепт досить простий. Зловмисники впроваджують шкідливий код вставкою iframe на сторінки сайту і намагаються завантажити на комп'ютер шкідливі файли, які нічого не підозрюють. Виявити такі шкідливі врізки на ваших сайтах досить легко. Варто лише звернути увагу на фрагменти коду, в яких використовується підключення iframe. Такі вставки можуть бути як у HTML, так і у PHP файлах.

Зловмисники майже завжди намагаються максимально приховати від власників використання шкідливих ставок, приховуючи їх візуально для користувачів ресурсу та обфузуючи (заплутуючи) свій код.

Приховування iframe вставок від очей користувачів

Для маскування шкідливої ​​вставки хакери в більшості випадків застосовують один і той же метод щоразу - виставляють властивості тега так, щоб він не відображався на сторінці, але містився в її коді. Найчастіше виставляється нульова або однопіксельна ширина і довжина: width="1px", height="1px".

Наприклад, шкідливий код може виглядати так:

Однак, часто таким маскуванням хакери не обмежуються, доповнюючи приховування більш витонченими прийомами, здатними спантеличити і ускладнити пошук і усунення навіть просунутим програмістам.

Обфускація

Це один із найбільш часто зустрічаються способів захисту коду в програмуванні неструктурованими мовами (таких, як, наприклад, PHP). Фактично все шифрування полягає в самому переплутуванні/заплутуванні коду за рахунок зміни імен змінних та інших елементів. Як результат - розпізнати ознаки шкідливості в заплутаному коді досить важко і можливо лише за непрямими ознаками використання у явному вигляді спеціальних JS (JavaScript) функцій, що використовуються якраз для обфускації: unescape, відCharCode.

Однак, виявлення обфусцированного коду на сайті не означає однозначної його шкідливості або легкості усунення. Потрібно розуміти, що, по-перше, зловмисники могли обфуцювати код, захопивши ще частину робочого коду сайту. У такому разі, при спробі вирізання зашифрованого фрагмента ви ризикуєте обрушити ваш ресурс. По-друге, обфусцированный код може бути шкідливим, лише бути наслідком роботи вашої CMS чи окремих її компонентів, і навіть, встановлених вами додаткових модулів.

У будь-якому випадку, якщо ви зіткнулися з підозрілим обфусцованим кодом, потрібно діяти з максимальною акуратністю.

Інші ознаки зараження

Якщо ви сумніваєтеся, чи є знайдений вами код шкідливим, можна спробувати проаналізувати непрямі ознаки. За наявності великої кількості файлів на вашому сайті, ви можете звернути увагу на дату та час останньої зміни файлів. У випадку, якщо ви добре знаєте сценарії роботи своєї CMS з файлами, можете придивитися до файлів, змінених в одну дату в один і той же час, або зі змінами, що йдуть з однаковим інтервалом часу, наприклад, 1 секунда.

У випадку, якщо ви є просунутим програмістом, то можете написати скрипт, який перевіряє наявність виявленого вами типу вставок на всіх файлах вашого сайту. Якщо ви ще більш просунуті - можете змусити скрипт вирізати вставки, проте завжди потрібно бути акуратним.

Альтернативні методи

Ми рекомендуємо вам використовувати сервіс Вірусдай для видалення шкідливих вставок навіть у тих випадках, коли ви є просунутим фахівцем. Наш сервіс не тільки містить безліч сигнатур, якими знаходить шкідливі коди, але й економить час! До того ж, вартість використання Вірусдаю для чищення буде, ймовірно, набагато нижчою, ніж оплата вашого ж робочого часу. Ви зможете виявити та видалити не тільки iframe вставки, але й безліч інших загроз. Ймовірно, ви зможете знайти та автоматично видалити загрозу, що призвела до появи iframe вставок на вашому сайті, таку, як, наприклад, Шелл.

Команда сервісу Вірусдай.

Тег .

Синтаксис

Параметри

align Визначає як кадр вирівнюватиметься по краю, а також спосіб обтікання його текстом. frameborder Встановлює, відображати кордон навколо кадру чи ні. height Висота кадру. hspace Горизонтальний відступ від кадру до контенту. ім'я кадру. scrolling Спосіб відображення смуги прокручування у кадрі. src Шлях до файлу, вміст якого завантажуватиметься у кадр. vspace Вертикальний відступ від кадру до контенту. width Ширина кадру.

Закриваючий тег

Обов'язковий.

Приклад 1. Використання тега


Опис параметрів тега

Аргументи

absmiddle Вирівнювання середини кадру по середині поточного рядка. baseline Вирівнювання кадру по базовій лінії поточного рядка. bottom Вирівнювання нижньої межі кадру по навколишньому тексту. left Вирівнює кадр по лівому краю вікна. middle Вирівнювання середини кадру базової лінії поточного рядка. right Вирівнює кадр по правому краю вікна. texttop Верхня межа кадру вирівнюється за найвищим текстовим елементом поточного рядка. top Верхня межа кадру вирівнюється за найвищим елементом поточного рядка.

Найбільш популярні параметри - left і right, що створюють обтікання тексту навколо кадру. Щоб текст не прилягав до вмісту кадру, рекомендується в тезі

Lorem ipsum dolor sit amet, consectetuer adipiscing elit...

Параметр FRAMEBORDER

Опис

За умовчанням навколо кадру малюється рамка з ефектом тривимірності. Щоб її приховати застосовується параметр frameborder.

Синтаксис


Аргументи

yes (або 1) Відображає рамку навколо кадру. no (або 0) Приховує рамку навколо кадру.

Значення за замовчуванням

Приклад 3. Приховування вихідної рамки навколо кадру





Тег IFRAME, параметр frameborder




Параметр HEIGHT та WIDTH

Опис

Для зміни розмірів кадру засобами HTML передбачені параметри width і height. Дозволяється використовувати значення у пікселах або відсотках. Якщо встановлено процентний запис, то розміри кадру обчислюються щодо батьківського елемента — контейнера, де знаходиться тег

Аргументи

Будь-яке ціле позитивне число у пікселах чи відсотках.

Значення за замовчуванням

width - 300 пікселів, height - 150 пікселів.

Приклад 4. Ширина та висота кадру





Тег IFRAME, параметр width




Параметр HSPACE та VSPACE

HTML: 3.2 4 XHTML: 1.0 1.1

Опис

Для будь-якого кадру можна задати невидимі відступи по горизонталі та вертикалі за допомогою, відповідно, параметрів hspace та vspace. Особливо це актуально під час обтікання вмісту кадру текстом. У цьому випадку, щоб текст не «наїжджав» щільно на межу кадру, необхідно довкола нього додати порожній простір.

Синтаксис


Аргументи

Будь-яке ціле позитивне число пікселів.

Значення за замовчуванням

Приклад 5. Поля навколо кадру





Тег IFRAME, параметр hspace




Параметр NAME

Опис

У звичайному HTML-документі під час переходу за посиланням у вікні браузера поточний документ замінюється новим. Щоб направити вміст у кадр, він повинен мати унікальне ім'я, яке задається атрибутом name . У цьому випадку під час створення посилання у тега потрібно вказати параметр target , як значення якого виступає ім'я кадру.

Синтаксис

Аргументи

Для вказівки імені використовується набір символів, включаючи цифри та літери. При зверненні до кадру на ім'я дотримуйтесь те саме написання, що й у параметрі name .

Значення за замовчуванням





Тег IFRAME, параметр name


Чебурашка

Крокодил Гена

Шапокляк


Параметр SCROLLING

Опис

Якщо вміст кадру не міститься у відведених розмірах, автоматично з'являються смуги прокручування для перегляду інформації. У деяких випадках смуги прокручування порушують дизайн веб-сторінки, тому від них можна відмовитися. Для керування відображенням смуг прокручування використовується параметр scrolling.

Синтаксис

Аргументи

auto Смуги прокручування додаються браузером лише за потребою, у тому випадку, коли вміст кадру перевищує його видиму частину. no Забороняє відображення смуг прокручування. yes Завжди викликає появу смуг прокручування, незалежно від обсягу інформації.

Значення за замовчуванням

Приклад 7. Приховування смуг прокручування





Тег IFRAME, параметр scrolling




Параметр SRC

Опис

Вказує адресу файлу (URL), який завантажуватиметься у кадр. Це може бути HTML-документ, зображення чи серверна програма. Допустимо використовувати не тільки шлях до файлу, але також ім'я JavaScript, яке повертає значення.

Синтаксис

Аргументи

Як значення приймається повний чи відносний шлях до файлу.

Значення за замовчуванням

Приклад 8. Шлях до файлу





Тег IFRAME, параметр src




Теги кадрів

  • FRAME визначає властивості окремого кадру, куди ділиться вікно браузера.
  • FRAMESET визначає структуру кадрів на веб-сторінці. Фрейми розділяють вікно браузера на окремі області, розташовані впритул один до одного. У кожну з таких областей завантажується самостійна веб-сторінка, яка визначається за допомогою тега FRAME.
  • IFRAME створює плаваючий кадр, який знаходиться всередині звичайного документа, він дозволяє завантажувати в область заданих розмірів будь-які інші незалежні документи.
  • NOFRAMES відображається у браузері, коли він не підтримує кадри та не вміє їх інтерпретувати. Браузери, які працюють з кадрами, повністю ігнорують вміст NOFRAMES.
  • Всім привіт. У html є один цікавий тег, за допомогою якого можна на свою веб-сторінку вставити іншу, причому вона виглядатиме так, начебто вшита у вашу. Це стаття про те, як вставити в HTML iframe з прикладом.

    Можливості iframe

    Отже, за допомогою цього парного тега можна вставити до своєї статті сторінку з будь-якого веб-сайту в інтернеті. Давайте розглянемо такий фрагмент коду:

    Як бачите, всі параметри вставки в атрибутах тега. Про перші два, я думаю, вам пояснювати нічого не треба - це ширина і висота нашого кадру, в якому буде потрібна сторінка. Розміри потрібно вибирати виходячи з ширини вашого контентного блоку.

    Адреса потрібної сторінки задається в атрибуті src. У ньому потрібно написати повну адресу до сайту. Наступний атрибут – ім'я кадру. Тут можна написати довільне значення. Нарешті, scrolling відповідає за появу смуг прокручування, а його значення auto робить так, що прокручування з'явиться лише за необхідності. Також тут можна задати значення no. У цьому випадку смуги прокручування не з'являтимуться, але тоді й прокрутити сторінку не можна буде — ви зможете лише переглянути її фрагмент, на скільки вистачить заданої висоти.

    Інші параметри при необхідності ви можете встановити через css. Наприклад, це можуть бути відступи чи рамка.

    Приклад вставки iframe у html

    У прикладі коду, який я наводив вище, вам потрібно лише змінити адресу сторінки на свою, а також розміри кадру, якщо це необхідно. Ось приклад:

    Зараз у цій статті з'явився веб-сервіс, в якому ви можете шляхом переміщення курсору по екрану вибирати кольори, а при натисканні вони зберігаються. Я часто використовую цей корисний сайт, коли експериментую зі створенням гарних меню, кнопок та форм.

    Ось так просто можна вставити інший сайт на свою сторінку. Можливо, у зв'язку з цим у вас з'явиться багато своїх ідей вставки iframe до себе. Головне, що ви знаєте, як це робиться.

    Здрастуйте, шановні читачі блогу сайт. Сьогодні мова піде про кадри у мові Html. Зрозуміло, що почнемо ми спочатку, а саме з того, що це таке за звір. Також поговоримо про сьогодення (Frame) і майбутнє (Iframe) цих елементів у мові гіпертекстової розмітки поточної версії та в новому стандарті Html 5 при .

    Наприкінці статті, після детального опису процесу створення вбудованих кадрів та їх класичної структури в Html коді (вже рідко використовується), ми порушимо питання актуальності побудови сайту на них, а також обговоримо можливі способи їх застосування в поточний час на прикладі мого блогу.

    Що це таке і чим відрізняється Iframe від Frame

    Що це таке? Виявляється, що вони можуть використовуватися не тільки на сайтах, але і в будь-яких додатках до програм, але відрізняються тим, що вікно web сторінки або програми буде розділено на кілька областей, в кожну з яких завантажений якийсь окремий документ. Причому, ці області кадрів поводяться незалежно друг від друга.

    Напевно, найочевидніший приклад їх використання, з яким стикалися практично всі з вас, це так звані файли допомоги (хелпи), які є у багатьох програм встановлених на вашому комп'ютері.

    У ліве вікно завантажено файл з меню хелпу, а правому виводиться відповідний вибраному пункту меню документ. Примітно, що така структура дозволяє не підвантажувати у ліве вікно файл з меню при відкритті нового документа в правому. Саме в цьому і полягає основна перевага використання кадріву Html.

    Власне, саму назву цих елементів слід трактувати саме як самостійне вікно. За допомогою фреймів у нас з'являється можливість розбити одне велике вікно на кілька фрагментів, які можуть служити приймачами для окремих незалежних один від одного документів (сторінок, текстів, зображень, відео тощо).

    Як створюється фреймова структура у мові гіпертекстової розмітки? Якщо говорити про стандарт Html 4.01 (за класифікацією), який є основним на даний момент часу, то для цього використовуються три елементи - Frame, Frameset та 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. Для того, щоб обмежити область кадру (вікна), куди підвантажуватиметься зовнішній файл, передбачені атрибути Width та Heightзначення яких задаються в пікселах:

    Тобто. цей тег створює область, в яку завантажується якийсь зовнішній об'єкт (не важливо, з вашого сайту або з іншого ресурсу). Ширина і висота області задаються за допомогою Width і Height, а атрибуті Src вказується шлях до цього об'єкта.

    Всі ці атрибути елемент Iframe успадкував від подібних до нього малих тегів із заміщуваним контентом (типу вже згаданого вище Img). Ну, і ще у картинок він взяв і атрибути Hspace та Vspace, які дозволяють задати відступи від меж кадру до обтікає його тексту.

    Так само показово, що вирівнювання вбудованого кадру здійснюється абсолютно так само, як ми могли бачити при вивченні картинок в Html - . Все той же Align, але вже для тега Iframe з можливими значеннями Bottom, Top, Middle, Left та Right.

    Але цей елемент взяв так само і кілька атрибутів від тега Frame із класичної фреймової структури, про яку ми дуже й докладно поговоримо нижче за текстом. До таких атрибутів відноситься Name, значення якого можна використовувати як значення для того, щоб потрібний вам документ під час переходу за посиланням відкривався саме у вікні цього кадру (подробиці читайте нижче).

    Так само в Iframe з тега Frame перекочував атрибут Frameborder, який має лише два значення - або 0 (рамка навколо кадру не відображається), або 1 (рамка видно). За промовчанням використовується значення Frameborder=1, тому для її видалення вам потрібно прописати Frameborder="0":

    З Frame в цей елемент перейшов ще й атрибут Scrolling, що має за замовчуванням значення Auto - смуги прокручування у кадрі будуть з'являтися при необхідності, коли контент буде більшим за розміром вікна, призначеного для його відображення.

    Ну, і атрибути Marginwidth та Marginheight теж перейшли з елемента Frame. Вони будуть докладно розглянуті нижче за текстом, але двома словами — вони дозволяють задати відступ по ширині і висоті від країв кадру до контенту, що в нього міститься.

    Як я вже згадував, наочним прикладом використання Iframe є:

    Вставивши Iframe безпосередньо в web сторінку, ви отримаєте виведення ролика з ютуба. Робимо висновок, що цей елемент є сумішшю малих елементів з заміщуваним контентом і, власне, класичних фреймів, про які зараз і йтиметься.

    Фрейми на основі тегів Frame і Frameset - їх структура

    Отже, створення класичної фреймової структури починається з того, що ви прописуєте в Html коді замість відкриває та закриває тега Body, який зазвичай повинен бути присутнім у будь-якому документі, що замінює його контейнер на основі елементів Frameset.

    Принциповим моментом є те, що елемент Body в цьому випадку використовувати не можна — або Body (для звичайного документа), або Frameset (при створенні фреймової структури документа):

    Кожен кадр, який ми з вами формуємо всередині головного, створюється за допомогою окремого елемента Frame. Цей тег є поодиноким і в ньому ми задаємо шлях до того документа, який повинен буде підвантажуватись у це вікно.

    Третій елемент, який ми ще з вами не торкнулися – це Noframes. Він парний і дозволяє написати в собі якийсь текст, який буде оброблений браузером і відображений на веб-сторінці тільки в тому випадку, якщо цей браузер (або інший пристрій відображення) не підтримує кадри. Це може статися, наприклад, у разі використання будь-якого браузера для мобільних пристроїв.

    Зазвичай у Noframes додають не тільки інформацію про ситуацію, що склалася з неможливістю обробки фреймової структури, але і додають так само можливість перейти на інші сторінки, де можна буде продовжити роботу без їх використання. Сказати про нього ще важко, тому продовжимо.

    Виходить так, що елемент Frameset, який використовується замість тега Body, займає все місце, яке відведено для області перегляду, а вже всередині цієї області створюватимуться кадри за допомогою окремих елементів Frame. У зв'язку з цим постає питання — як ділити область перегляду між окремими вікнами чи, іншими словами, як задати розмір кожного їх.

    Це робиться за допомогою додавання відповідних атрибутів до елемента Frameset. Їх є цілих два - Cols та Rows. Cols задає поділ великого вікна на вертикальні фрейми або колонки, а Rows дозволяє розділити його на горизонтальні вікна або рядки.

    Створення структури на основі Frameset та його атрибутів Cols та Rows

    Як значення для Cols і Rows Html тега Frameset виступають числа, проставлені через кому (без пробілів). Ці числа задають пропорції вікон, які ми з вами хочемо отримати в результаті. Отже, скільки буде написано чисел через кому в Cols або Rows, стільки у нас фреймів і повинно буде вийти в результаті.

    Наприклад, за допомогою такого запису ми отримаємо три вертикальні колонки, які за шириною відповідатимуть пропорціям 2:5:3.

    Якщо ми задали пропорції для трьох кадрів, то ми повинні будемо обов'язково прописати між відкриваючим та закриваючим тегом Frameset три елементи Frame, хоча б і без вказівки додаткових атрибутів:

    В результаті наша фреймова структура, що складається з трьох порожніх вікон, виглядатиме так:

    У цьому прикладі розміри вікон (Frame) ми задавали за допомогою відсотків, які беруться від ширини області перегляду (це у разі використання Cols) або її висоти (Rows). При зміні області перегляду процентне співвідношення між розмірами кадрів зберігатиметься. Але замість відсотків можна використовувати і просто числа, які означатимуть . Тут, гадаю, теж ніяких труднощів у розумінні виникнути не повинно.

    Але є в позначення розмірів і досить незвичайний варіант, який виглядає як зірочка «*». Причому може стояти як просто «*», так і зірочка з цифрою попереду, наприклад, так «3*». Хитра штуковина дуже схожа на відсотки і означає, що ми ділимо простір для Frame пропорційно.

    Давайте подивимося на прикладі. Тепер виберемо поділ області перегляду на горизонтальні рядки за допомогою Rows:

    Що означає цей запис? Вся область перегляду, доступна нам по вертикалі, буде поділена на три рядки. Висота першої буде взята в 200 пікселів, другий - в 500, а ось третій рядок буде займати весь простір, що залишився по висоті, т.к. як її розмір використовувалася «*».

    Що примітно, значення «*» і «1*» означають одне і те ж — весь простір, що залишився, ми ділимо на один і цю одну частину віддаємо даному кадру (ну, тобто весь простір, що залишився).

    А ось подивіться що вийде, якщо використовувати значення * з цифрою для поділу в пропорції:

    Як ви думаєте, які повинні будуть вийти розміри Frame у цьому випадку? Зрозуміло, що другий рядок однозначно матиме висоту 100 пікселів. Але як поділиться простір, що залишився, по висоті між третім і першим рядком?

    Це досить просто порахувати - достатньо додати до двох (2 *) чотири (4 *) і розділити на цей знаменник (пам'ятайте дроби зі шкільної програми) двійку та четвірку. Тобто. ми отримаємо, що перша колонка з фреймом займе одну третину від простору, що залишився по висоті, а третя колонка - дві третини. Або, іншими словами, третя буде вдвічі вищою за першу:

    Можна використовувати всі три способи завдання розмірів вікон кадрів в одному атрибуті, наприклад:

    В результаті ми отримаємо першу колонку Frame шириною в десять відсотків від усієї доступної області, другу — 100 пікселів, а три решти матимуть ширину в пропорціях чотири, три і дві дев'ятих від простору, що залишився по ширині. Ось так усе просто і наочно.

    Якщо ви хочете розбити основне вікно не тільки на горизонтальні та вертикальні кадри, а, наприклад, на їх комбінації, то можна буде використовувати вкладену структуру елементів Frameset окремо для колонок і окремо для рядків. Наприклад, щоб отримати структуру показану на скріншоті трохи нижче, достатньо використовувати таку конструкцію:

    Тобто. спочатку ми розбиваємо за допомогою "frameset cols="20%,80%"" весь доступний простір на дві колонки по вертикалі і задаємо тегом "frame" вміст правої колонки, а ось замість того, що додати елемент "frame" для лівої колонки, ми відкриваємо новий „frameset rows=“10%,*»".

    І вже за допомогою нього розбиваємо праву колонку на два рядки з фреймами, вміст яких задаємо за допомогою двох тегів "frame", після чого закриваємо обидва контейнери "frameset". Все просто та логічно.

    Вказуємо шлях у атрибуті Src елемента Frame

    Але це ми всі говорили про елемент Frameset та його атрибути Cols та Rows, за допомогою яких формуємо структуру та задаємо їх розміри. Тепер давайте розберемося з тим, як виводити у потрібних кадрах потрібні документи та як налаштувати взаємодію між їхніми вікнами.

    Отже, як ми керуємо зовнішнім виглядом створюваних вікон? Все це закладено в атрибутах тега Frame. Перший із них, про який варто згадати — це Src. Ми вже зустрічали його у тегу Img, коли розглядали вставку зображень у Html код. Суть його не змінилася і він, як і раніше, дозволяє вказати шлях до того документа, який має бути завантажений у кадр.

    Шлях до документа Src може бути вказаний у вигляді . Відносні шляхи зазвичай використовуються для документа, який розташований на вашому ресурсі, а ось абсолютні вам знадобляться, коли ви захочете завантажити у вікно кадру документ з іншого сайту.

    Якщо не буде прописано атрибут Src із зазначенням шляху до потрібного документа, у вікно буде завантажено порожній документ. Особисто я колись робив подібну річ для свого блогу (як додатковий елемент навігації) і при цьому створював на сервері хостингу окрему папку для нього і поміщав туди не тільки Html файлик з фреймовою структурою (який назвав index.html), але й усі підвантажувані у різні вікна документи, а також файли зображень, які використовувалися як тло.

    Тому мені було найпростіше використовувати саме відносні посилання в атрибуті Src тега Frame:

    Що примітно, якщо ви заміните всі наведені в цьому коді посилання з відносних на абсолютні (типу https://сайт/navigator/joomla.html) та відкриєте цей файл у браузері, то вказані у Frame документи будуть підвантажені з мого сервера і ви побачите аналогічну картинку у своєму браузері. Причому не важливо, де буде лежати ваш файл із фреймовою структурою (index.html) — на вашому комп'ютері або на хостингу.

    У наведеному на малюнку прикладі, у вікно лівого кадру у мене завантажується сторінка з деяким меню, яке представляє собою простий . Але не має значення як формується меню, а важливо те, що відбудеться після натискання на будь-яке з його посилань.

    Якщо ви зробите це, все відбудеться саме так, як треба — документ відкриється в правому нижньому вікні. Але для цього мені довелося застосувати одну невелику хитрість, бо у варіанті за замовчуванням документ відкривався на весь розмір вікна, замінюючи собою фреймову структуру, що мені зовсім не потрібно, бо зникало навігаційне меню в лівому і верхньому фреймах.

    Як відкривати документи за посиланням у кадрі

    Отже, коли ми говорили про посилання, то згадували такий атрибут тега «A», як Target=_blank. Пам'ятаєте навіщо він потрібний? Правильно, щоб відкривати документ, на який проставлено посилання у новому вікні. За замовчуванням він повинен відкриватися в тому ж вікні, що еквівалентно target="_self".

    Але цим можливості Targetне обмежуються. Виявляється можна додавати до нього значення у вигляді назви кадру, яке попередньо вказується у спеціальному атрибуті Name тега Frame. Тоді документ за цим посиланням буде відкриватися не в тому ж вікні, займаючи весь його простір, а у вказаному Frame. Зрозуміло? Якщо не зовсім, то зараз буде зрозуміло при розборі прикладу.

    Отже, повернемося до нашого прикладу, наведеного на розташованому трохи вище малюнку. Нам потрібно відкривати сторінки за посиланнями з лівого вікна у правому нижньому (великому) кадрі. Отже, для початку потрібно цьому великому вікну дати ім'я за допомогою атрибута Name у тегу Frame.

    Зробили та назвали його «ktona». Тепер можна сміливо відкривати той файл, що підвантажується як меню в ліве вікно і додавати до всіх тегів A в ньому атрибут Target="ktona":

    Історія появи Joomla та компонента VirtueMart

    Звичайно ж, за допомогою інструменту пошуку та заміни в проставити його для всіх гіперпосилань буде не важко, але навіщо ж зайво завантажувати код, коли у нас є чудова можливість використовувати спеціальний тег Base, Про яке ми вже згадували все в тій же статті про гіперпосилання, коли говорили про використання Target blank.

    Достатньо лише поставити між відкриваючим та закриваючим тегами Head елемент base target="ktona" і всі посилання в Html коді цього документа будуть відкривати нові сторінки у вказаному фреймі під назвою «ktona»:

    До речі, якщо розглядати мій інструмент, що колись існував, як приклад, то потрібно ще зробити так, щоб усі посилання з верхнього горизонтального вікна відкривали б свої сторінки саме в лівому вертикальному фреймі, яке служить у мене лівим меню. Що для цього потрібно зробити?

    Ну, по-перше, потрібно дати ім'я лівому вертикальному кадру:

    А у файлі, який завантажується у верхнє вікно (gor.html), потрібно додати елемент base target="gor":

    Все, тепер ми зробили все, як треба. Всі документи за посиланнями з верхнього кадру відкриваються в лівому вікні, а всі посилання вже з нього будуть відкривати документи в центральному та найбільшому Frame. На мою думку, все просто і логічно.

    Атрибути тега Frame для налаштування зовнішнього вигляду вікон

    Давайте тепер подивимося, які атрибути окрім Src та Name можна використовувати у тегу Frame для налаштування зовнішнього вигляду кадрів. Почнемо з Scrolling. За допомогою нього ми можемо налаштувати відображення смуг прокручування для кожного вікна фреймової структури окремо.

    Scrolling має значення за замовчуванням Auto — браузер автоматично вирішуватиме, на основі розміру документа, що підвантажується у кадр, відображати смугу прокручування чи ні. Якщо документ не буде повністю поміщатися у вікно, з'явиться смуга прокручування, що дозволяє переглянути його весь до кінця.

    Так само як значення для Scrolling можна використовувати значення Yes (смуги прокручування у вікні будуть відображатися завжди, навіть якщо документ повністю влазить у нього) і No (смуги прокручування взагалі ніколи з'являтися не будуть, навіть якщо частина документа не влізе).

    Я в своєму інструменті, що колись існував, використовував значення за замовчуванням Auto і смуги прокручування у кадрах з'являлися в міру необхідності:

    Наступний атрибут тега Frame Noresize- є одиночним (у нього немає значень). Прописавши його, ви тим самим забороните зміну його розмірів, яка за умовчанням здійснюється простим перетягуванням межі кадрів мишею.

    При підведенні курсору миші до кордону ви побачите, що курсор перетвориться на двонаправлену стрілку і тепер, натиснувши ліву кнопку миші, можна пересувати кордон за вашим бажанням. Noresize накладає на це свавілля заборону (при підведенні курсору миші до межі вікон, двонаправлену стрілку ви вже не побачите).

    Ще один візуальний атрибут Frameborder. За допомогою нього ви можете вказати — малювати рамку між межами або ж не малювати. Frameborder може мати лише два можливі значення - або 0 (рамку не малювати), або 1 (кордон відображати). За замовчуванням, звичайно, використовується значення 1.

    Є одна тонкість. Якщо ви хочете прибрати видиму рамку, то вам доведеться додати Frameborder=0 до всіх тегів Frame тих кадрів, видимі межі між якими ви хочете прибрати.

    Ну, і ще нам залишилося розглянути пару атрибутів тега Frame. Marginwidth та Marginheight, які задають відступи по ширині (праворуч і ліворуч) та висоті (зверху та знизу) від меж вікна до контенту завантаженого в нього (число означає кількість пікселів відступу):

    Чому не можна робити сайт на кадрах?

    Давайте подивимося в чому полягає принципова нестача класичних структур, яка по суті ставить хрест на їх використанні при створенні сайту. Він полягає в тому, що за цією фреймовою структурою неможливо відстежити її стан.

    У складних структур можуть бути тисячі різних станів (варіанти документів відкритих у різних вікнах фреймів), але при цьому URL адреси цієї самої структури не змінюється. Через це буде неможливо користуватися закладками браузераабо ж надсилати посилання на сторінки, що сподобалися іншим користувачам. Чому?

    Тому що адреса залишається незмінною і при відкритті її із закладок браузера, або ж з листа електронної пошти, ви отримаєте сторінку зі стартовим станом фреймової структури, а не її стан, який ви хотіли б зберегти.

    Хоча, звичайно ж, ця проблема вирішувана, але вже не засобами Html, а за допомогою серверних (наприклад, Php) або клієнтських мов (ДжаваСкрипт) програмування, і ці рішення будуть працездатними не на всі сто відсотків. Такі рішення, по суті, дозволяють дописувати до Url адреси кадрової структури додаткові дані про її поточний стан, але зробити це не просто, а надійність буде абсолютною.

    Це перший мінус використання кадрів для створення сайтів і дуже вагомий, але є ще один величезний мінус. Пошуковики, звичайно ж, вже давно навчилися індексувати їх та витягувати з них адреси тих документів, що підвантажуються у їхні вікна. Проблема у іншому.

    Коли користувач переходить з пошукової видачі Яндекса або Google на ваш сайт, побудований на базі фреймової структури, відкриється тільки той документ, який завантажувався в один з кадрів, а не вся структура. Розумієте, про що я говорю?

    Користувач побачить документ та не побачить навігації по вашому сайтуБо вона буде зашита в інших вікнах, а вони підвантажуються тільки в складі всієї структури.

    У результаті сайт, побудований на фреймах, стає просто не юзабельним. Хоча знову ж таки є вирішення цієї проблеми на базі серверних скриптів, коли здійснюватиметься редирект з адрес окремих документів на фреймову структуру, що знаходиться в потрібному стані, але це знову ж таки дуже складно і не завжди надійно.

    Загалом, висновок можна зробити однозначним. створювати сайти на кадрах не потрібно. Але зате вони постійно використовуються для створення хелпів для різних додатків, та й ще десь по дрібниці можуть стати в нагоді.

    Наприклад, я створив фреймову структуру, яку обізвав «Навігатор» (зараз її тимчасово прибрав) і яка стала своєрідним розгорнутим зовнішнім меню для мого блогу, яке, як мені здається, має спростити роботу з ресурсом і, а отже, і покращити без балди» дуже сильно впливають на просування сайту.

    Але, правда, щоб уникнути будь-яких проблем з пошуковими системами, я закрив від усю цю фреймову структуру, а так само додав про всяк випадок у всі її Html файли мета тег Rodots із забороною їх індексації:

    JOOMLA

    Але всі ці обмеження стосуються лише структур на тегах Frame та Frameset, а вбудовані кадри на тегах Iframeне мають жодних видимих ​​вад, і їх цілком можна і навіть потрібно використовувати на своїх проектах, хоча б для вставки відеороликів з Ютуба.

    Удачі вам! До швидких зустрічей на сторінках блогу сайт

    Вам може бути цікаво

    Директиви коментарів і Doctype в Html коді, а також поняття блокових та малих елементів (тегів)
    Embed та object - Html теги для відображення медіа контенту (відео, флеш, аудіо) на веб-сторінках
    Img - Html тег для вставки картинки (Src), вирівнювання та обтікання її текстом (align), а також завдання фону (background)
    Що таке мова гіпертекстової розмітки Html і як переглянути список усіх тегів у валідаторе W3C Select, Option, Textarea, Label, Fieldset, Legend - теги Html форми списків, що випадають, і текстового поля
    Списки в Html коді - теги UL, OL, LI та DL
    Теги Font (Face, Size та Color), Blockquote та Pre - застаріле форматування тексту в чистому HTML (без використання CSS)
    Як задаються кольори в Html та CSS коді, підбір RGB відтінків у таблицях, видачі Яндекса та інших програмах

    Довго думав, як назвати статтю, краще не вигадав. Але зараз ви одразу зрозумієте у чому суть. У вас є сайт, ви пишіть на ньому статті, і це здорово. Але чогось не вистачає? Людина прийшла, почитала, і пішла, можливо, назавжди. А вам так хочеться, щоб він неодноразово повернувся на ваш сайт. А куди люди повертаються найчастіше? Правильно, на послуги!

    Але зробити на власному веб-сайті навіть маленький сервіс, типу або скорочувача посилань можуть не всі, потрібен певний досвід. Але що заважає показувати чужий сервіс на своєму сайті? Практично нічого! Як це зробити? Ось тут доречна назва статті: як вставити сайт на сайт?

    Для профі я не зроблю відкриття, для новачків це буде, швидше за все, корисно. Хоча, якщо чесно, я жодного разу не бачив такого підходу на жодному блозі. А дарма, всі ці фішки часто дають добрий результат. Хороший приклад - це мій спосіб отримання зворотних посилань. Результат - 38512 посилань, і всі природні 😉

    У цьому випадку все вирішується банальним iframe. Відразу перейду до практики: часом користуюся сервісом стиснення png картинок. Є чудові онлайн-сервіси, ними можна користуватися без проблем. Але тут є мінус: потрібно постійно тримати в умі або закладках всі ці сервіси, ви залишаєте свій сайт і користуєтеся чужим. А так, якщо вставити сайт у сайті iframe, то ви користуватиметеся сервісом (та й не тільки ви) не залишаючи свого сайту!

    Я вже сьогодні зробив на окремій сторінці собі такий псевдосервіс (природно, в назві гарний НЧ запит, і в пояснювальному тексті теж)

    Як зробити iframe адаптивним?

    Ось який метод можна використовувати у цьому випадку:

    .video ( height: 0; position: relative; padding-bottom: 56.25%; ) .video iframe ( position: absolute; left: 0; top: 0; width: 100%; height: 100%; )

    Чи не знайшли відповідь? Скористайтеся пошуком по сайту

     

     

    Це цікаво: