<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>WebДевка</title><subtitle>Бывшая вебдев. Сейчас в депрессии. Рисую грустных коров. Вспоминаю бывшее. Пишу разное.</subtitle><author><name>WebДевка</name></author><id>https://teletype.in/atom/webdevka</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/webdevka?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/webdevka?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-05-13T15:49:26.675Z</updated><entry><id>webdevka:open-graph-tags</id><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka/open-graph-tags?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><title>Минимальный набор тегов Open Graph</title><published>2021-09-23T10:12:29.717Z</published><updated>2021-09-23T10:30:39.385Z</updated><summary type="html">Утомляет искать весь этот  «суповой набор». Поэтому оставлю подборку тегов Open Graph здесь.</summary><content type="html">
  &lt;p id=&quot;G6lv&quot;&gt;Утомляет искать весь этот  «суповой набор». Поэтому оставлю подборку тегов Open Graph здесь.&lt;/p&gt;
  &lt;pre id=&quot;XKmZ&quot;&gt;&amp;lt;meta property=&amp;quot;og:url&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;
&amp;lt;meta property=&amp;quot;og:title&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;
&amp;lt;meta property=&amp;quot;og:description&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;
&amp;lt;meta property=&amp;quot;og:image&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;
&amp;lt;meta property=&amp;quot;og:type&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;iamZ&quot;&gt;Для тех, кто в танке — протокол Open Graph позволяет любой веб-странице стать полноценным объектом в соцсетях. К счастью его теги теперь используются большинством современных соцсетей и нет необходимости чего-то больше.&lt;/p&gt;
  &lt;p id=&quot;NWP6&quot;&gt;Кратки пояснения из &lt;a href=&quot;https://developers.facebook.com/docs/sharing/webmasters?locale=ru_RU&quot; target=&quot;_blank&quot;&gt;документации&lt;/a&gt;:&lt;/p&gt;
  &lt;ul id=&quot;LSCC&quot;&gt;
    &lt;li id=&quot;3dkV&quot;&gt;&lt;strong&gt;og:url&lt;/strong&gt; — канонический URL вашей страницы, как в &lt;strong&gt;&amp;lt;link&amp;gt;&lt;/strong&gt; теге &lt;strong&gt;rel=&amp;quot;canonical&amp;quot;&lt;/strong&gt;;&lt;/li&gt;
    &lt;li id=&quot;7aoq&quot;&gt;&lt;strong&gt;og:title&lt;/strong&gt; — заголовок статьи как в теге &lt;strong&gt;&amp;lt;title&amp;gt;&lt;/strong&gt;, но без упоминания бренда, названия сайта, прочее;&lt;/li&gt;
    &lt;li id=&quot;PjkU&quot;&gt;&lt;strong&gt;og:description&lt;/strong&gt; — краткое описание контента, как в &lt;strong&gt;&amp;lt;meta&amp;gt;&lt;/strong&gt; теге &lt;strong&gt;description&lt;/strong&gt;;&lt;/li&gt;
    &lt;li id=&quot;wNNk&quot;&gt;&lt;strong&gt;og:image&lt;/strong&gt; — URL изображения (нужный размер можно узнать на &lt;a href=&quot;https://crello.com/ru/home/&quot; target=&quot;_blank&quot;&gt;crello&lt;/a&gt;, но хз);&lt;/li&gt;
    &lt;li id=&quot;ZdnW&quot;&gt;&lt;strong&gt;og:type&lt;/strong&gt; — тип мультимедиа, к которому относятся контент (я использую &lt;strong&gt;website&lt;/strong&gt; и &lt;strong&gt;article&lt;/strong&gt;).&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;nKTp&quot;&gt;Не забывайте добавить в &lt;strong&gt;&amp;lt;html&amp;gt;&lt;/strong&gt; тег &lt;strong&gt;prefix=&amp;quot;og: &lt;a href=&quot;http://ogp.me/ns#&quot; target=&quot;_blank&quot;&gt;http://ogp.me/ns#&lt;/a&gt;&amp;quot;&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;pCbO&quot;&gt;Обновить данные карточки в соцсети:&lt;/p&gt;
  &lt;ul id=&quot;1bbu&quot;&gt;
    &lt;li id=&quot;xnel&quot;&gt;&lt;a href=&quot;https://developers.facebook.com/tools/debug/&quot; target=&quot;_blank&quot;&gt;Отладчик репостов Facebook&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;IXN7&quot;&gt;&lt;a href=&quot;https://cards-dev.twitter.com/validator&quot; target=&quot;_blank&quot;&gt;Twitter card validator&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;eKGm&quot;&gt;Telegram &lt;a href=&quot;https://telegram.me/webpagebot&quot; target=&quot;_blank&quot;&gt;Webpage Bot&lt;/a&gt; via &lt;a href=&quot;https://telegramgeeks.com/2016/03/you-can-update-link-preview-telegram/&quot; target=&quot;_blank&quot;&gt;telegramgeeks&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>webdevka:remove-item-from-array-js</id><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka/remove-item-from-array-js?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><title>Как удались элемент массива в JavaScript?</title><published>2021-09-22T18:31:03.989Z</published><updated>2021-09-22T18:31:03.989Z</updated><summary type="html">Для этого вам понадобиться сделать следующее. Найдите индекс элемента массива, который вы хотите удалить, используя indexOf(), а затем удалите его с помощью splice.</summary><content type="html">
  &lt;p id=&quot;8FQj&quot;&gt;Для этого вам понадобиться сделать следующее. Найдите индекс элемента массива, который вы хотите удалить, используя &lt;a href=&quot;https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf&quot; target=&quot;_blank&quot;&gt;indexOf()&lt;/a&gt;, а затем удалите его с помощью &lt;a href=&quot;https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array/splice&quot; target=&quot;_blank&quot;&gt;splice&lt;/a&gt;.&lt;/p&gt;
  &lt;pre id=&quot;kfGv&quot;&gt;const array = [2, 5, 9];
const index = array.indexOf(5);
if (index &amp;gt; -1) array.splice(index, 1);
console.log(array);&lt;/pre&gt;
  &lt;p id=&quot;vygA&quot;&gt;результат:&lt;/p&gt;
  &lt;pre id=&quot;04I9&quot;&gt;array = [2, 9]&lt;/pre&gt;
  &lt;h3 id=&quot;tVo4&quot;&gt;Немного информации из документации&lt;/h3&gt;
  &lt;p id=&quot;7e0Y&quot;&gt;Метод &lt;strong&gt;indexOf()&lt;/strong&gt; возвращает первый индекс, по которому данный элемент может быть найден в массиве или -1, если такого индекса нет.&lt;/p&gt;
  &lt;p id=&quot;wVRn&quot;&gt;Метод &lt;strong&gt;splice()&lt;/strong&gt; изменяет содержимое массива, удаляя существующие элементы и/или добавляя новые.&lt;/p&gt;

</content></entry><entry><id>webdevka:correct-mime-type-for-json</id><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka/correct-mime-type-for-json?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><title>Правильный MIME тип для JSON</title><published>2021-09-22T18:19:15.350Z</published><updated>2021-09-22T18:19:15.350Z</updated><summary type="html">В большинстве случаев я об этом даже не задумывалась. Но если и вам хочется действовать по правилам, то это статья для вас.</summary><content type="html">
  &lt;p id=&quot;mhTR&quot;&gt;В большинстве случаев я об этом даже не задумывалась. Но если и вам хочется действовать по правилам, то это статья для вас.&lt;/p&gt;
  &lt;p id=&quot;8spy&quot;&gt;Перерыв кучу информации каких только вариантов не встретила:&lt;/p&gt;
  &lt;pre id=&quot;NXKS&quot;&gt;application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json&lt;/pre&gt;
  &lt;p id=&quot;iTWO&quot;&gt;Ответ таков — в соответствии с &lt;a href=&quot;http://www.ietf.org/rfc/rfc4627.txt&quot; target=&quot;_blank&quot;&gt;RFC 4627&lt;/a&gt; правильным MIME типом для JSON является &lt;strong&gt;application/json&lt;/strong&gt;. Не путайте его JSON с JSONp, который является исполняемым JavaScript кодом с обратным вызовом, его MIME тип &lt;strong&gt;application/javascript&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;WvHH&quot;&gt;Почему же не стоит использовать &lt;strong&gt;text/html&lt;/strong&gt; для JSON и нужно заморачиваться? Насколько я знаю для этого уже нет особых причин. Когда-то была трабла с XSS атаками, но это пофиксили. Тот же Internet Explorer 7, но и он канул в лету. Так что остаётся только желание действовать по правилам.&lt;/p&gt;

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

</content></entry><entry><id>webdevka:decode-google-news-links</id><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka/decode-google-news-links?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><title>Декодирование ссылок с Google News</title><published>2021-09-21T20:55:52.686Z</published><updated>2021-09-21T20:55:52.686Z</updated><summary type="html">Google News был бы замечательным источником новостей, если бы не его ссылки:</summary><content type="html">
  &lt;p id=&quot;MDrL&quot;&gt;Google News был бы замечательным источником новостей, если бы не его ссылки:&lt;/p&gt;
  &lt;pre id=&quot;YQmG&quot;&gt;https://news.google.com/articles/CBMiZGh0dHBzOi8va29ycmVzcG9uZGVudC5uZXQvdWtyYWluZS9wb2xpdGljcy80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb27SAVdodHRwczovL2tvcnJlc3BvbmRlbnQubmV0L2FtcC80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb24?hl=ru&amp;amp;gl=UA&amp;amp;ceid=UA%3Aru&lt;/pre&gt;
  &lt;p id=&quot;mAoJ&quot;&gt;Самое забавное, что эта ссылка уже содержит в себе ссылки на страницу новости и её AMP-версию:&lt;/p&gt;
  &lt;pre id=&quot;5Hbr&quot;&gt;CBMiZGh0dHBzOi8va29ycmVzcG9uZGVudC5uZXQvdWtyYWluZS9wb2xpdGljcy80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb27SAVdodHRwczovL2tvcnJlc3BvbmRlbnQubmV0L2FtcC80Mzk4ODkwLXplbGVuc2t5aS1venZ1Y2h5bC1vemh5ZGFueWlhLW90LWhlbmFzc2FtYmxleS1vb24&lt;/pre&gt;
  &lt;p id=&quot;nVtH&quot;&gt;Этот фрагмент является зашифрованной Base64 строкой. Если не верите, попробуйте декодировать её на том же &lt;a href=&quot;https://www.base64decode.org/&quot; target=&quot;_blank&quot;&gt;Decode from Base64 format&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;XznZ&quot;&gt;Проблема лишь в разделителях. И я до сих пор не знаю как с ними быть.&lt;/p&gt;

</content></entry><entry><id>webdevka:adaptive-youtube-iframe</id><link rel="alternate" type="text/html" href="https://teletype.in/@webdevka/adaptive-youtube-iframe?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=webdevka"></link><title>Адаптивная вставка YouTube кода</title><published>2021-09-21T20:47:21.094Z</published><updated>2021-09-22T11:49:15.054Z</updated><summary type="html">Полученный с YouTube код вставки видео не является адаптивным. Размеры iframe фиксированы. Это создаёт определённые проблемы. Сделаем iframe резиновым.</summary><content type="html">
  &lt;p id=&quot;xR5n&quot;&gt;Полученный с YouTube код вставки видео не является адаптивным. Размеры iframe фиксированы. Это создаёт определённые проблемы. Сделаем iframe резиновым.&lt;/p&gt;
  &lt;p id=&quot;yP0j&quot;&gt;Для этого нам понадобится обернуть его в дополнительный блок классом wrap-youtube:&lt;/p&gt;
  &lt;pre id=&quot;79dt&quot;&gt;&amp;lt;div class=&amp;quot;wrap-youtube&amp;quot;&amp;gt;&amp;lt;iframe width=&amp;quot;560&amp;quot; height=&amp;quot;315&amp;quot; srcdoc=&amp;quot;&amp;lt;style&amp;gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img{position:absolute;width:100%;top:0;bottom:0;margin:auto}&amp;lt;/style&amp;gt;&amp;lt;a href=&amp;#x27;https://www.youtube.com/embed/jg9MX2w7Ebw?autoplay=1&amp;amp;mute=1&amp;#x27;&amp;gt;&amp;lt;img src=&amp;#x27;http://localhost/img/youtube.jpg&amp;#x27; alt=&amp;#x27;Я не использую куки&amp;#x27;&amp;gt;&amp;lt;/a&amp;gt;&amp;quot; title=&amp;quot;Я не использую куки&amp;quot; frameborder=&amp;quot;0&amp;quot; allow=&amp;quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&amp;quot; allowfullscreen&amp;gt;&amp;lt;/iframe&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;Hp3O&quot;&gt;Дальше немного CSS-магии:&lt;/p&gt;
  &lt;pre id=&quot;ygoh&quot;&gt;&amp;lt;style&amp;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;}
&amp;lt;/style&amp;gt;&lt;/pre&gt;
  &lt;p id=&quot;bhUl&quot;&gt;и вуаля.&lt;/p&gt;
  &lt;p id=&quot;A0m6&quot;&gt;Рабочий пример этого решения вы может посмотреть на сайте &lt;a href=&quot;https://kadabrus.ru/&quot; target=&quot;_blank&quot;&gt;https://kadabrus.ru/&lt;/a&gt;&lt;/p&gt;

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

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

</content></entry></feed>