Как встроить SWF-файл в HTML-страницу?

Как встроить SWF-файл в HTML-страницу?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
176
0
464 378
15
Перейти к ответу Данный вопрос помечен как решенный

Ответы 15

<object width = "100" height = "100">
    <param name = "movie" value = "file.swf">
    <embed src = "file.swf" width = "100" height = "100">
    </embed>
</object>

Этот код недействителен для XHTML ... <embed> не должен находиться в теге объекта.

Anheledir 10.10.2008 04:19

Нет спецификации пользователя, чтобы быть действительным XHTML, он попросил HTML

Ólafur Waage 21.10.2008 04:09

В этой статье есть хорошее объяснение встраивания Flash и действительного XHTML. yoast.com/articles/valid-flash-embedding

Joko Wandiro 15.11.2013 10:05

почему бы не использовать атрибут data в элементе <объект>? Цитата из документов w3c html5: Присутствует по крайней мере один из атрибута данных или атрибута типа должен.

vladkras 24.11.2014 17:08

@JokoWandiro ссылка, которую вы предоставили, к сожалению, исчезла. Вот архивная версия: web.archive.org/web/20180602024700/https://yoast.com/…

Hermann.Gruber 13.02.2019 16:51
Ответ принят как подходящий

Лучший способ встроить SWF в HTML-страницу - использовать SWFObject.

Это простая библиотека JavaScript с открытым исходным кодом, которая представляет собой простой в использовании и совместимый со стандартами метод встраивания содержимого Flash.

Он также предлагает определение версии Flash-плеера. Если у пользователя нет требуемой версии Flash или отключен JavaScript, он увидит альтернативный контент. Вы также можете использовать эту библиотеку для запуска обновления Flash-плеера. После обновления пользователь будет перенаправлен обратно на страницу.

Пример из документации:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml" lang = "en" xml:lang = "en">
  <head>
    <title>SWFObject dynamic embed - step 3</title>
    <meta http-equiv = "Content-Type" content = "text/html; charset=iso-8859-1" />
    <script type = "text/javascript" src = "swfobject.js"></script>

    <script type = "text/javascript">
        swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0");
    </script>

  </head>
  <body>
    <div id = "myContent">
      <p>Alternative content</p>
    </div>
  </body>
</html>

Хорошим инструментом для использования вместе с этим является SWFObject HTML и JavaScript генератор. Он в основном генерирует HTML и JavaScript, необходимые для встраивания Flash с помощью SWFObject. Поставляется с очень простым пользовательским интерфейсом для ввода параметров.

Настоятельно рекомендуется и очень проста в использовании.

SWFObject хорош. Просто работает. Еще более замечательная идея - использовать сеть доставки контента для получения javascript. Я использую Google ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js

Ardee Aram 01.04.2011 06:12

У меня были проблемы с использованием тега объекта непосредственно в IE9, но он отлично работает с swfobject.

AndyMcKenna 05.09.2012 19:11

Спасибо за Ваш ответ. Теперь можете предложить плеер для доступа к возможности воспроизведения вместе с рабочим примером в самом html. ????

Sumit Ramteke 18.12.2013 08:16

Может ли это работать на той системе, где не установлен flash player или он поддерживает все браузеры.

Mohammed Javed 03.09.2015 08:42

Теперь проект перемещен на GitHub: github.com/swfobject/swfobject, а новый метод встраивания SWF-объекта - var el = document.getElementById("my-target-element"); swfobject.embedSWF("myContent.swf", el, 300, 120, 10);.

Lucky 26.07.2016 16:11

swfobject больше не работает с Chrome. Новая политика Chrome (по умолчанию HTML) развертывается, начиная с версии 55, и больше не инициализирует переменные, которые swfobject должен проверять, установлен ли Flash. swfobject может выдать неверное сообщение «установить флэш», когда на самом деле Flash просто блокируется Chrome, вызывая путаницу у пользователя. Для Chrome лучшим вариантом может быть простое использование <object> для встраивания Flash.

Chris 04.12.2016 21:16

Примечание: этому ответу более 10 лет, и он очень устарел. Это больше не работает с Chrome, как упоминает @Chris. Пожалуйста, посмотрите несколько лучших ответов HTML5. Они просты и поддерживаются непосредственно поставщиками браузеров и не требуют загрузки библиотеки swfobject для ваших пользователей.

joshuakcockrell 20.09.2018 00:31

Я использую http://wiltgen.net/objecty/, это помогает встраивать медиа-контент и избегать проблемы IE "нажмите, чтобы активировать".

Проблема с «щелчком для активации» называется «активацией eolas», но в актуальных версиях IE она устранена.

Anheledir 10.10.2008 04:20

Как уже упоминалось, объект SWF великолепен. НЛО тоже стоит посмотреть

Если вы используете одну из этих js-библиотек для вставки Flash, я предлагаю добавить тег встраивания простого объекта внутри <noscript/>.

<object type = "application/x-shockwave-flash" data = "http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" 
style = "width:640px;height:480px;margin:10px 36px;">

<param name = "movie" value = "http://www.youtube.com/v/VhtIydTmOVU&amp;hl=en&amp;fs=1&amp;color1=0xe1600f&amp;color2=0xfebd01" />
<param name = "allowfullscreen" value = "true" />
<param name = "allowscriptaccess" value = "always" />
<param name = "wmode" value = "opaque" />
<param name = "quality" value = "high" />
<param name = "menu" value = "false" />

</object>

Обратите внимание, что параметры object> data и movie> value совпадают. Этот код должен работать для любого бесплатного просмотра и публикации видео на YouTube.

Spooky 11.10.2012 23:46

Вообще говоря, желательно, чтобы ответы объясняли код, который они дают, а не просто перетаскивают код задающему. Цель состоит в том, чтобы узнать о проблемах и предотвратить их в будущем, а не заставить их исчезнуть.

KRyan 12.10.2012 01:56

Это подходит для приложений из корневой среды.

<object type = "application/x-shockwave-flash" data = "/dir/application.swf" 
id = "applicationID" style = "margin:0 10px;width:auto;height:auto;">

<param name = "movie" value = "/dir/application.swf" />
<param name = "wmode" value = "transparent" /> <!-- Or opaque, etc. -->

<!-- ↓ Required paramter or not, depends on application -->
<param name = "FlashVars" value = "" />

<param name = "quality" value = "high" />
<param name = "menu" value = "false" />

</object>

Дополнительные параметры должны быть / могут быть добавлены в зависимости от самого .swf. Нет встраивания, просто объект и параметры внутри, поэтому он остается действительным, работает и может использоваться везде, не имеет значения, о каком! DOCTYPE. :)

Какой способ лучше? Такие слова, как «наиболее эффективный», «самый быстрый рендеринг» и т. д. Более конкретны. В любом случае, я предлагаю альтернативный ответ, который помогает мне большую часть времени (независимо от того, является ли он «лучшим» или нет).

Альтернативный ответ: используйте iframe.

То есть разместить SWF-файл на сервере. Если вы поместите SWF-файл в корневую папку или папку public_html, тогда SWF-файл будет расположен по адресу www.YourDomain.com/YourFlashFile.swf.

Затем в своем index.html или где-либо еще свяжите указанное выше местоположение с вашим iframe, и оно будет отображаться вокруг вашего контента, где бы вы ни разместили свой iframe. Если вы можете поместить туда iframe, вы можете поместить туда SWF-файл. Сделайте размеры iframe такими же, как у вашего SWF-файла. В приведенном ниже примере размер SWF-файла составляет 500 на 500.

Псевдокод:

<iframe src = "//www.YourDomain.com/YourFlashFile.swf" width = "500" height = "500"></iframe>

Приведенная выше строка HTML-кода вставит ваш SWF-файл. Никакой другой беспорядок не нужен. Плюсы: совместимость с W3C, удобный дизайн страницы, отсутствие проблем со скоростью, минималистичный подход.
Минусы: пустое пространство вокруг SWF-файла при запуске в браузере.

Это альтернативный ответ. Будет ли это «лучший» ответ, зависит от вашего проекта.

для google @Stoic извините, что вы ошиблись, это должен быть //www... с использованием //, означает, что если вы используете HTTPS или HTTP, он работает с использованием того же типа подключения

Barkermn01 03.01.2014 23:29

Если вы знакомы, вы можете использовать JavaScript, например:

swfobject.embedSWF("filename.swf", "Title", "width", "height", "9.0.0");

- 9.0.0 - это флэш-версия.

Или вы можете использовать тег <object> HTML5.

-1 swfobject - это не просто часть JavaScript, вы не можете просто вызвать его, не встраивая библиотеку. и большая часть функций тега <object> была удалена из HTML 4-5. Его все еще можно использовать, но не рекомендуется. В общем, очень плохой ответ.

rorypicko 16.04.2014 13:06

Вы уже пробовали это, прежде чем сказать, что это очень плохой ответ? имейте в виду, что очень плохой ответ - это ответ, который не работает полностью или неправильно.

Allan 25.04.2014 09:53

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

rorypicko 25.04.2014 15:16

Я уже упоминал об использовании Javascript и дал сценарий. Если бы я дал весь рабочий код / ​​скрипт, который делает кормление с ложечки. Скрипт прекрасен, это всего лишь логика.

Allan 07.05.2014 10:18

Вы неправильно поняли мой комментарий. Вы не сказали ему включить файл Javascript SWFObject

rorypicko 07.05.2014 12:29

Это сработало для меня:

    <a target = "_blank" href = "{{ entity.link }}">
        <object type = "application/x-shockwave-flash" data = "{{ entity.file.path }}?clickTAG = {{ entity.link }}" width = "120" height = "600" style = "visibility: visible;">
            <param name = "quality" value = "high">
            <param name = "play" value = "true">
            <param name = "LOOP" value = "false">
            <param name = "wmode" value = "transparent">
            <param name = "allowScriptAccess" value = "true">
        </object>
    </a>

Как насчет простого встраивания тега HTML5?

<!DOCTYPE html>
<html>
<body>

<embed src = "anim.swf">

</body>
</html>

Я уверен, что это сработает!

<embed src = "application.swf" quality = "high" pluginspage = "http://www.macromedia.com/go/getfashplayer" type = "application/x-shockwave-flash" width = "690" height = "430">

Я знаю, что это старый вопрос. Но пока этот ответ будет хорош.

<!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title>histo2</title>
        <style type = "text/css" media = "screen">
        html, body { height:100%; background-color: #ffff99;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>
    </head>
    <body>
        <div id = "flashContent">
            <object type = "application/x-shockwave-flash" data = "histo2.swf" width = "822" height = "550" id = "histo2" style = "float: none; vertical-align:middle">
                <param name = "movie" value = "histo2.swf" />
                <param name = "quality" value = "high" />
                <param name = "bgcolor" value = "#ffff99" />
                <param name = "play" value = "true" />
                <param name = "loop" value = "true" />
                <param name = "wmode" value = "window" />
                <param name = "scale" value = "showall" />
                <param name = "menu" value = "true" />
                <param name = "devicefont" value = "false" />
                <param name = "salign" value = "" />
                <param name = "allowScriptAccess" value = "sameDomain" />
                <a href = "http://www.adobe.com/go/getflash">
                    <img src = "http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt = "Get Adobe Flash player" />
                </a>
            </object>
        </div>
    </body>
</html>

Thi работает в IE, Edge, Firefox, Safari и Chrome.

<object type = "application/x-shockwave-flash" data = "movie.swf" width = "720" height = "480">
  <param name = "movie" value = "movie.swf" />
  <param name = "quality" value = "high" />
  <param name = "bgcolor" value = "#000000" />
  <param name = "play" value = "true" />
  <param name = "loop" value = "true" />
  <param name = "wmode" value = "window" />
  <param name = "scale" value = "showall" />
  <param name = "menu" value = "true" />
  <param name = "devicefont" value = "false" />
  <param name = "salign" value = "" />
  <param name = "allowScriptAccess" value = "sameDomain" />
  <a href = "http://www.adobe.com/go/getflash">
    <img src = "http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt = "Get Adobe Flash player" />
  </a>
</object>

Используйте элемент <embed>:

<embed src = "file.swf" width = "854" height = "480"></embed>

Другие вопросы по теме