<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>WebДевка</title><generator>teletype.in</generator><description><![CDATA[Бывшая вебдев. Сейчас в депрессии. Рисую грустных коров. Вспоминаю бывшее. Пишу разное.]]></description><image><url>https://img4.teletype.in/files/70/75/7075342f-ad37-4280-93aa-b019a370e966.jpeg</url><title>WebДевка</title><link>https://teletype.in/@webdevka</link></image><link>https://teletype.in/@webdevka?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/webdevka?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/webdevka?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Wed, 13 May 2026 15:49:27 GMT</pubDate><lastBuildDate>Wed, 13 May 2026 15:49:27 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@webdevka/open-graph-tags</guid><link>https://teletype.in/@webdevka/open-graph-tags?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/open-graph-tags?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Минимальный набор тегов Open Graph</title><pubDate>Thu, 23 Sep 2021 10:12:29 GMT</pubDate><description><![CDATA[Утомляет искать весь этот  «суповой набор». Поэтому оставлю подборку тегов Open Graph здесь.]]></description><content:encoded><![CDATA[
  <p id="G6lv">Утомляет искать весь этот  «суповой набор». Поэтому оставлю подборку тегов Open Graph здесь.</p>
  <pre id="XKmZ">&lt;meta property=&quot;og:url&quot; content=&quot;&quot;&gt;
&lt;meta property=&quot;og:title&quot; content=&quot;&quot;&gt;
&lt;meta property=&quot;og:description&quot; content=&quot;&quot;&gt;
&lt;meta property=&quot;og:image&quot; content=&quot;&quot;&gt;
&lt;meta property=&quot;og:type&quot; content=&quot;&quot;&gt;</pre>
  <p id="iamZ">Для тех, кто в танке — протокол Open Graph позволяет любой веб-странице стать полноценным объектом в соцсетях. К счастью его теги теперь используются большинством современных соцсетей и нет необходимости чего-то больше.</p>
  <p id="NWP6">Кратки пояснения из <a href="https://developers.facebook.com/docs/sharing/webmasters?locale=ru_RU" target="_blank">документации</a>:</p>
  <ul id="LSCC">
    <li id="3dkV"><strong>og:url</strong> — канонический URL вашей страницы, как в <strong>&lt;link&gt;</strong> теге <strong>rel=&quot;canonical&quot;</strong>;</li>
    <li id="7aoq"><strong>og:title</strong> — заголовок статьи как в теге <strong>&lt;title&gt;</strong>, но без упоминания бренда, названия сайта, прочее;</li>
    <li id="PjkU"><strong>og:description</strong> — краткое описание контента, как в <strong>&lt;meta&gt;</strong> теге <strong>description</strong>;</li>
    <li id="wNNk"><strong>og:image</strong> — URL изображения (нужный размер можно узнать на <a href="https://crello.com/ru/home/" target="_blank">crello</a>, но хз);</li>
    <li id="ZdnW"><strong>og:type</strong> — тип мультимедиа, к которому относятся контент (я использую <strong>website</strong> и <strong>article</strong>).</li>
  </ul>
  <p id="nKTp">Не забывайте добавить в <strong>&lt;html&gt;</strong> тег <strong>prefix=&quot;og: <a href="http://ogp.me/ns#" target="_blank">http://ogp.me/ns#</a>&quot;</strong></p>
  <p id="pCbO">Обновить данные карточки в соцсети:</p>
  <ul id="1bbu">
    <li id="xnel"><a href="https://developers.facebook.com/tools/debug/" target="_blank">Отладчик репостов Facebook</a></li>
    <li id="IXN7"><a href="https://cards-dev.twitter.com/validator" target="_blank">Twitter card validator</a></li>
    <li id="eKGm">Telegram <a href="https://telegram.me/webpagebot" target="_blank">Webpage Bot</a> via <a href="https://telegramgeeks.com/2016/03/you-can-update-link-preview-telegram/" target="_blank">telegramgeeks</a></li>
  </ul>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/remove-item-from-array-js</guid><link>https://teletype.in/@webdevka/remove-item-from-array-js?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/remove-item-from-array-js?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Как удались элемент массива в JavaScript?</title><pubDate>Wed, 22 Sep 2021 18:31:03 GMT</pubDate><description><![CDATA[Для этого вам понадобиться сделать следующее. Найдите индекс элемента массива, который вы хотите удалить, используя indexOf(), а затем удалите его с помощью splice.]]></description><content:encoded><![CDATA[
  <p id="8FQj">Для этого вам понадобиться сделать следующее. Найдите индекс элемента массива, который вы хотите удалить, используя <a href="https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf" target="_blank">indexOf()</a>, а затем удалите его с помощью <a href="https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice" target="_blank">splice</a>.</p>
  <pre id="kfGv">const array = [2, 5, 9];
const index = array.indexOf(5);
if (index &gt; -1) array.splice(index, 1);
console.log(array);</pre>
  <p id="vygA">результат:</p>
  <pre id="04I9">array = [2, 9]</pre>
  <h3 id="tVo4">Немного информации из документации</h3>
  <p id="7e0Y">Метод <strong>indexOf()</strong> возвращает первый индекс, по которому данный элемент может быть найден в массиве или -1, если такого индекса нет.</p>
  <p id="wVRn">Метод <strong>splice()</strong> изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/correct-mime-type-for-json</guid><link>https://teletype.in/@webdevka/correct-mime-type-for-json?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/correct-mime-type-for-json?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Правильный MIME тип для JSON</title><pubDate>Wed, 22 Sep 2021 18:19:15 GMT</pubDate><description><![CDATA[В большинстве случаев я об этом даже не задумывалась. Но если и вам хочется действовать по правилам, то это статья для вас.]]></description><content:encoded><![CDATA[
  <p id="mhTR">В большинстве случаев я об этом даже не задумывалась. Но если и вам хочется действовать по правилам, то это статья для вас.</p>
  <p id="8spy">Перерыв кучу информации каких только вариантов не встретила:</p>
  <pre id="NXKS">application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json</pre>
  <p id="iTWO">Ответ таков — в соответствии с <a href="http://www.ietf.org/rfc/rfc4627.txt" target="_blank">RFC 4627</a> правильным MIME типом для JSON является <strong>application/json</strong>. Не путайте его JSON с JSONp, который является исполняемым JavaScript кодом с обратным вызовом, его MIME тип <strong>application/javascript</strong>.</p>
  <p id="WvHH">Почему же не стоит использовать <strong>text/html</strong> для JSON и нужно заморачиваться? Насколько я знаю для этого уже нет особых причин. Когда-то была трабла с XSS атаками, но это пофиксили. Тот же Internet Explorer 7, но и он канул в лету. Так что остаётся только желание действовать по правилам.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/seo-friendly-url-in-php-using-htaccess</guid><link>https://teletype.in/@webdevka/seo-friendly-url-in-php-using-htaccess?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/seo-friendly-url-in-php-using-htaccess?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>SEO-frienly URL на PHP с использованием .htaccess</title><pubDate>Wed, 22 Sep 2021 11:42:19 GMT</pubDate><description><![CDATA[Коротко о том как создавать динамические сайты с дружественными URL-адресами на PHP с ипользованием htaccess + поисковая оптимизация.]]></description><content:encoded><![CDATA[
  <p id="vgfg">Коротко о том как создавать динамические сайты с дружественными URL-адресами на PHP с ипользованием htaccess + поисковая оптимизация.</p>
  <h2 id="WfKP">SEO-frienly URL в .htaccess</h2>
  <p id="y0vv">.htaccess это локальный конфигурационный файл вебсервера Apache. Он размещается в корневой папке сайта и служит дополнением к общим настройкам сервера. Для создания дружественных URL-адресов в него добавляется ряд опций перенаправления запросов, производимых модулем mod_rewrite.c:</p>
  <pre id="SwMA">&lt;IfModule mod_rewrite.c&gt;
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?u=$1 [L,QSA]
&lt;/IfModule&gt;</pre>
  <p id="X2tV">Разберём приведённые опции подробнее:</p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="yDdQ">
      <li id="NtBW"><strong>RewriteEngine on</strong> — включает механизм перенаправления запросов модуля <em>mod_rewrite.c</em></li>
      <li id="UKva"><strong>RewriteCond %{REQUEST_FILENAME} !-f</strong> — исключает из правил переадресации физически существующие файлы.</li>
      <li id="jSeZ"><strong>RewriteCond %{REQUEST_FILENAME} !-d</strong> — исключает из правил переадресации физически существующие директории.</li>
      <li id="Sx9P"><strong>RewriteRule ^(.*)$ index.php?friendly_url=$1 [L,QSA</strong>] — перенаправление всех запросов на файл <em>index.php</em>, чей параметр <em>friendly_url</em> будет содержать идущий после домена запрашиваемый путь.</li>
    </ul>
  </section>
  <p id="4e5n">Разберём последнюю опцию <strong>RewriteRule</strong> подробнее. Она содержит два параметра и группу флагов. Первый параметр определяет регулярное выражение шаблона запрашиваемого URL-адреса, второй — файл назначения. Флаг <strong>L</strong> — останавливает процесс обработки правил перенаправления при наличии подходящего шаблону правила, а <strong>QSA</strong> — позволяет передавать файлу назначения параметры заданные в URL. Например, по запросу:</p>
  <pre id="PQhy">kadabrus.ru/cat?q=wolf</pre>
  <p id="r4wM">файл назначения получится следующим:</p>
  <pre id="z1IL">index.php?friendly_url=cat&amp;q=wolf</pre>
  <p id="DGSy">В то время как без <strong>QSA </strong>мы бы получили лишь:</p>
  <pre id="wkSG">index.php?friendly_url=cat</pre>
  <h2 id="Ea6h">SEO-frienly URL в PHP</h2>
  <p id="TVFR">Исходя из выше изложенного примера, обработчиком запросов является файл index.php, например:</p>
  <pre id="HWbf">&lt;?php
$friendly_url = trim((string) $_GET[&#x27;friendly_url&#x27;], &#x27;/&#x27;);
$inc_name = &#x27;404&#x27;;
if( empty($friendly_url) ){ $inc_name = &#x27;index&#x27;; }
elseif($friendly_url == &#x27;about&#x27; ){ $inc_name = &#x27;login&#x27;; }
$inc_file = $ops[&#x27;abs&#x27;] . DIRECTORY_SEPARATOR .&#x27;inc/mod_&#x27;. DIRECTORY_SEPARATOR . &#x27;.php&#x27;;
if( !file_exists($inc_file) ) die(&#x27;Module &#x27;. $inc_name .&#x27; not exists.&#x27;);
include_once($inc_file);</pre>
  <p id="niDn">Здесь полученное значение параметра <em>friendly_url</em> преобразуется в строку с «обрезанием» по краям возможного символа «/». Делается это для удобства дальнейшей опработки. Далее задаётся модуль по умолчанию — 404 (страница не найдена). Если <em>$friendly_url</em> пуст, это главная страница, если иное значение, то подбираем соответствующий модуль. Название модуля <em>$inc_name</em> определяет подключаемых файл <em>$inc_file</em>. Ну а дальше дело техники.</p>
  <h2 id="r6jl">SEO-frienly URL</h2>
  <p id="yRDQ">Поисковые системы отдают предпочтение статическим веб-страницам. Как это реализовать на PHP с использованием .htaccess вы уже знаете. Осталось лишь привести несколько рекомендаций по SEO-frienly URL:</p>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="0orL">
      <li id="yqzN">поддерживайте чёткую структуру сайта;</li>
      <li id="nn7v">структура URL сайта должна быть по возможности простой;</li>
      <li id="W6P8">попробуйте упорядочить контент так, чтобы URL был понятен человеку;</li>
      <li id="tCdY">по возможности используйте в URL слова, а не цифровые идентификаторы;</li>
      <li id="Nf4E">используйте в URL знаки препинания, лучше всего знак минус (-), а не символ подчеркивания (_);</li>
      <li id="yEVc">не увлекайтесь SEO-frienly URL, чтобы не получить полностью и почти дублирующий контент (например, при использовании фильтров списков);</li>
      <li id="QQEf">не забывайте блокировать служебные URL в robots.txt и/или добавлять rel=nofollow в их содержащих ссылках (например, страницы результатов поиска);</li>
      <li id="bEBK">убедитесь, что все URL работают правильно.</li>
    </ul>
  </section>
  <p id="8Gfh">Подробней об этом читайте в рекомендациях для вебмастеров от <a href="https://developers.google.com/search/docs/advanced/guidelines/url-structure?hl=ru" target="_blank">Google</a>, <a href="https://yandex.ru/support/webmaster/recommendations/site-structure.html" target="_blank">Яндекс</a>, прочее.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/decode-google-news-links</guid><link>https://teletype.in/@webdevka/decode-google-news-links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/decode-google-news-links?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Декодирование ссылок с Google News</title><pubDate>Tue, 21 Sep 2021 20:55:52 GMT</pubDate><description><![CDATA[Google News был бы замечательным источником новостей, если бы не его ссылки:]]></description><content:encoded><![CDATA[
  <p id="MDrL">Google News был бы замечательным источником новостей, если бы не его ссылки:</p>
  <pre id="YQmG">https://news.google.com/articles/CBMiZGh0dHBzOi8va29ycmVzcG9uZGVudC5uZXQvdWtyYWluZS9wb2xpdGljcy80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb27SAVdodHRwczovL2tvcnJlc3BvbmRlbnQubmV0L2FtcC80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb24?hl=ru&amp;gl=UA&amp;ceid=UA%3Aru</pre>
  <p id="mAoJ">Самое забавное, что эта ссылка уже содержит в себе ссылки на страницу новости и её AMP-версию:</p>
  <pre id="5Hbr">CBMiZGh0dHBzOi8va29ycmVzcG9uZGVudC5uZXQvdWtyYWluZS9wb2xpdGljcy80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb27SAVdodHRwczovL2tvcnJlc3BvbmRlbnQubmV0L2FtcC80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb24</pre>
  <p id="nVtH">Этот фрагмент является зашифрованной Base64 строкой. Если не верите, попробуйте декодировать её на том же <a href="https://www.base64decode.org/" target="_blank">Decode from Base64 format</a>.</p>
  <p id="XznZ">Проблема лишь в разделителях. И я до сих пор не знаю как с ними быть.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/adaptive-youtube-iframe</guid><link>https://teletype.in/@webdevka/adaptive-youtube-iframe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/adaptive-youtube-iframe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Адаптивная вставка YouTube кода</title><pubDate>Tue, 21 Sep 2021 20:47:21 GMT</pubDate><description><![CDATA[Полученный с YouTube код вставки видео не является адаптивным. Размеры iframe фиксированы. Это создаёт определённые проблемы. Сделаем iframe резиновым.]]></description><content:encoded><![CDATA[
  <p id="xR5n">Полученный с YouTube код вставки видео не является адаптивным. Размеры iframe фиксированы. Это создаёт определённые проблемы. Сделаем iframe резиновым.</p>
  <p id="yP0j">Для этого нам понадобится обернуть его в дополнительный блок классом wrap-youtube:</p>
  <pre id="79dt">&lt;div class=&quot;wrap-youtube&quot;&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; srcdoc=&quot;&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}&lt;/style&gt;&lt;a href=&#x27;https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&amp;mute=1&#x27;&gt;&lt;img src=&#x27;http://localhost/img/youtube.jpg&#x27; alt=&#x27;Я не использую куки&#x27;&gt;&lt;/a&gt;&quot; title=&quot;Я не использую куки&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;</pre>
  <p id="Hp3O">Дальше немного CSS-магии:</p>
  <pre id="ygoh">&lt;style&gt;
.wrap-youtube {position:relative;padding-bottom:56.25%;height:0;overflow:hidden;}
.wrap-youtube iframe {position:absolute;top:0;left:0;width:100%;height:100%;border-width:0;outline-width:0;}
&lt;/style&gt;</pre>
  <p id="bhUl">и вуаля.</p>
  <p id="A0m6">Рабочий пример этого решения вы может посмотреть на сайте <a href="https://kadabrus.ru/" target="_blank">https://kadabrus.ru/</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/autoplay-youtube-video-iframe</guid><link>https://teletype.in/@webdevka/autoplay-youtube-video-iframe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/autoplay-youtube-video-iframe?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Автовоспроизведение YouTube видео в iframe</title><pubDate>Tue, 21 Sep 2021 20:39:21 GMT</pubDate><description><![CDATA[Google защищает пользователей от нежелательного действия. Поэтому нельзя просто так взять и включить автовоспроизведение YouTube видео.]]></description><content:encoded><![CDATA[
  <p id="9h4M">Google защищает пользователей от нежелательного действия. Поэтому нельзя просто так взять и включить автовоспроизведение YouTube видео.</p>
  <p id="mNGI">По идее существует атрибут autoplay=1, который можно добавить в полученный код. Но такое <a href="https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1" target="_blank">https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1</a> — работать не будет.</p>
  <p id="lP3z">Для того, чтобы добиться автовоспроизведения видео с YouTube придётся чем-то пожертвовать. И этим чем-то будет звук. Проще говоря, мы можем получить лишь беззвучное автовоспроизведение YouTube видео. Для этого нам надо добавить атрибут mute=1. Такое <a href="https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&mute=1" target="_blank">https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&amp;mute=1</a> работать будет.</p>
  <p id="mSD2">Возвращаясь к прошлой статье «<a href="https://teletype.in/@webdevka/lazy-load-youtube-video" target="_blank">Загрузка видео с YouTube по клику на картинку с его заставкой</a>» нам нужно поменять ссылку на упомянутую. Тогда при клике по ссылке произойдёт загрузка и автовоспроизведением видео с YouTube.</p>
  <pre id="OMVg">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; srcdoc=&quot;&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}&lt;/style&gt;&lt;a href=&#x27;https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&amp;mute=1&#x27;&gt;&lt;img src=&#x27;http://localhost/img/youtube.jpg&#x27; alt=&#x27;Я не использую куки&#x27;&gt;&lt;/a&gt;&quot; title=&quot;Я не использую куки&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</pre>
  <p id="B0uQ">Рабочий пример этого решения вы может посмотреть на сайте <a href="https://kadabrus.ru/" target="_blank">https://kadabrus.ru/</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@webdevka/lazy-load-youtube-video</guid><link>https://teletype.in/@webdevka/lazy-load-youtube-video?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka</link><comments>https://teletype.in/@webdevka/lazy-load-youtube-video?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=webdevka#comments</comments><dc:creator>webdevka</dc:creator><title>Загрузка видео с YouTube по клику на картинку с его заставкой</title><pubDate>Tue, 21 Sep 2021 20:21:32 GMT</pubDate><description><![CDATA[Это называется lazy load (с англ. отложенная загрузка) iframe. Нам нужно чтобы видео с YouTube загружалось не сразу, а по клику на картинке с его заставкой. Решений этому много, но я приведу самое простое.]]></description><content:encoded><![CDATA[
  <p id="TidG">Это называется lazy load (с англ. <em>отложенная загрузка</em>) iframe. Нам нужно чтобы видео с YouTube загружалось не сразу, а по клику на картинке с его заставкой. Решений этому много, но я приведу самое простое.</p>
  <p id="i9s7">Исходный код для вставки видео с YouTube на сайт представляет собой iframe:</p>
  <pre id="mPeV">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/jg9MX2w7Ebw&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</pre>
  <p id="7vWd">В него сразу подгружается веб-страница находящаяся по адресу указанному в атрибуте src. Это страница с видеоплеером YouTube. В результате страница нашего сайта грузится дольше.</p>
  <p id="Fhgg">Чтобы этого избежать, мы подгрузим в iframe нашу веб-страницу, которая будет содержать картинку заставки видео со ссылкой на <a href="https://www.youtube.com/embed/jg9MX2w7Ebw" target="_blank">https://www.youtube.com/embed/jg9MX2w7Ebw</a>:</p>
  <pre id="t5LX">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://site.ru/video.html&quot; title=&quot;YouTube video player&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</pre>
  <p id="wQjR">Пример содержания страницы <a href="https://site.ru/video.html" target="_blank">https://site.ru/video.html</a>:</p>
  <pre id="Ccq7">&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}&lt;/style&gt;&lt;a href=&#x27;https://www.youtube.com/embed/jg9MX2w7Ebw&#x27;&gt;&lt;img src=&#x27;http://localhost/img/youtube.jpg&#x27; alt=&#x27;Я не использую куки&#x27;&gt;&lt;/a&gt;</pre>
  <p id="4UDL">Код сокращён до минимума, т.к. можно обойтись и без создания отдельной страницы, вставив его в атрибут srcdoc и убрав ненужный атрибут src:</p>
  <pre id="opId">&lt;iframe width=&quot;560&quot; height=&quot;315&quot; srcdoc=&quot;&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}&lt;/style&gt;&lt;a href=&#x27;https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&#x27;&gt;&lt;img src=&#x27;http://localhost/img/youtube.jpg&#x27; alt=&#x27;Я не использую куки&#x27;&gt;&lt;/a&gt;&quot; title=&quot;Я не использую куки&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</pre>
  <p id="fVf6">Рабочий пример этого решения вы может посмотреть на сайте <a href="https://kadabrus.ru/" target="_blank">https://kadabrus.ru/</a></p>

]]></content:encoded></item></channel></rss>