Любой способ использования фреймов в HTML5? - PullRequest
42 голосов
/ 31 января 2011

Для школы я должен сделать веб-сайт, а он должен использовать эти дерьмовые старые чертовы рамки fml . Я уже жаловался на это своему учителю, но безуспешно: (

Я хочу использовать HTML5, но кажется, что фреймы устарели. Мне действительно нужно использовать XHTML или HTML 4? Есть ли обходной путь, который заставляет мои страницы проверять HTML5 с использованием фреймов?

Ответы [ 6 ]

36 голосов
/ 29 сентября 2011

Я знаю, что ваш класс окончен, но в профессиональном кодировании пусть это будет урок:

  • «Устаревшее» означает «избегайте использования; оно будет удалено в будущем»
  • Устаревшие вещи все еще работают - просто не ожидайте поддержки или проверки на будущее
  • Если требование требует этого, и вы не можете договориться об этом, просто используйте устаревшую конструкцию.
    • Если вы действительно обеспокоены, разработайте альтернативную реализацию на стороне и держите ее наготове для неизбежного сбоя
    • Плата за дополнительную работу сейчас.Запрашивая устаревшую функцию, они просят вас удвоить работу.В любом случае, вы увидите это снова, так что, возможно, загрузите его с фронта.
    • Когда произойдет сбой, сообщите заинтересованной стороне, что вы боялись этого;что вы к нему подготовились, но это займет некоторое время
    • Разверните ваше решение как можно быстрее (будут ошибки)
    • Получите репутацию для предотвращения чрезмерного простоя.
27 голосов
/ 31 января 2011

Теперь, есть много примеров, когда я отвечаю на вопросы с эссе о том, почему важно следовать правилам проверки.Я также сказал, что иногда вам просто нужно быть бунтарем, нарушать правила и документировать причины.

В этом примере вы можете видеть, что наборы фреймов работают в HTML5 по-прежнему .Однако мне пришлось скачать код и добавить тип документа HTML5 вверху.Но элемент frameset все еще был распознан, и желаемый результат был достигнут.

Поэтому, зная, что использование framesets абсолютно абсурдно, и зная, что вы должны использовать это в соответствии с требованиями вашего профессора / учителя, вы могли бы простоиметь дело с единственной ошибкой валидации в валидаторе W3C и использовать как элемент видео HTML5, так и устаревший элемент frameset.

<!DOCTYPE html>
<html>
    <head>
    </head>
    <!-- frameset is deprecated in html5, but it still works. -->
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="http://www.google.com" target="main">
    </frameset>
</html>

Имейте в виду, что если это школьный проект, он, скорее всего, не будетбыть тем, что будет примерно через год или два после того, как поставщики браузеров полностью уберут поддержку фреймов для HTML5.Просто знайте, что вы правы, и просто делайте то, что просит ваш учитель / профессор, просто чтобы получить оценку:)

ОБНОВЛЕНИЕ:

Документ верхнего уровня для родителей использует XHTML ифрейм использует HTML5.Валидатор не жаловался на незаконность набора фреймов и не жаловался на элемент видео.

index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html>
    <head>
    </head>
    <frameset framespacing="0" rows="150,*" frameborder="0" noresize>
        <frame name="top" src="http://www.npscripts.com/framer/demo-top.html" target="top">
        <frame name="main" src="video.html" target="main">
    </frameset>
</html>

video.html :

<!doctype html>
<html>
    <head>
    </head>
    <body>
        <div id="player-container">
            <div class="arrow"></div>
            <div class="player">

                <video id="vid1" width="480" height="267" 
                    poster="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb480.jpg"
                    durationHint="33" controls>
                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb_trailer_iphone.m4v" />

                    <source src="http://cdn.kaltura.org/apis/html5lib/kplayer-examples/media/bbb400p.ogv" />

                </video>

        </div>
    </body>
</html>
4 голосов
/ 31 января 2011

Может быть, в качестве альтернативы можно использовать инъекцию содержимого страницы AJAX, хотя я до сих пор не могу понять, почему ваш учитель отказывается избавлять сайт от фреймов.

Кроме того, есть ли какая-то конкретная причина, по которой вы лично хотите использовать HTML5?

Но если нет, я считаю, что <iframe> все еще вокруг.

2 голосов
/ 31 января 2011

Для этого вам придется прибегнуть к XHTML или HTML 4.01.Хотя iframe все еще присутствует в HTML5, его использование не рекомендуется для встраивания контента, предназначенного для пользователя.

И обязательно сообщите своему учителю, что фреймы не были самыми современными с тех порконец девяностых.Им вообще нет места в каком-либо образовании, кроме как, возможно, по историческим причинам.

1 голос
/ 13 марта 2015

Я использовал фреймы на моем коммерческом сайте непрерывного образования более 15 лет. Кадры позволяют кадру навигации загружать материал в основной кадр, используя целевую функцию, оставляя кадр навигатора нетронутым. Кроме того, Perl-скрипты работают достаточно хорошо с формы фрейма, возвращая вывод в тот же фрейм. Я люблю кадры и буду продолжать их использовать. CSS слишком сложен для практического использования. У меня не было проблем с использованием фреймов с HTML5 с IE, Safari, Chrome или Firefox.

1 голос
/ 03 февраля 2011

Кадры не были объявлены устаревшими в HTML5, но были признаны устаревшими в XHTML 1.1 Strict и 2.0, но остались в XHTML Transitional и возвращены в HTML5.Также здесь - интересная статья об использовании CSS для имитации кадров без рамок.Я только что проверил это в IE 8, FF 3, Opera 11, Safari 5, Chrome 8. Я люблю фреймы, но у них есть свои проблемы, особенно с поисковыми системами, закладками и печатью, а с помощью CSS вы можете создавать для печати или отображать только контент,Я надеюсь обновить фрейм Алекса XHTML / CSS без фреймов до HTML5 / CSS3.

...