<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>ContextMenus on Agile Software Development</title><link>https://www.agilesoftwaredevelopment.com/ru/tags/contextmenus/</link><description>Recent content in ContextMenus on Agile Software Development</description><generator>Hugo -- 0.151.0</generator><language>ru</language><lastBuildDate>Tue, 27 Oct 2026 18:13:27 +0300</lastBuildDate><atom:link href="https://www.agilesoftwaredevelopment.com/ru/tags/contextmenus/index.xml" rel="self" type="application/rss+xml"/><item><title>Правый клик с памятью: почему я храню счётчик в id пункта меню Chrome</title><link>https://www.agilesoftwaredevelopment.com/ru/posts/save-image-as-pdf-mv3/</link><pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate><guid>https://www.agilesoftwaredevelopment.com/ru/posts/save-image-as-pdf-mv3/</guid><description>&lt;p&gt;Мои хобби-проекты - небольшие расширения для Хрома и сайты-микросервисы. Одно из расширений, &lt;a href="https://chromewebstore.google.com/detail/pdf-to-png/efmncnngmhifenlnkdmphjmdhgbjnmgi?utm_source=asd&amp;amp;utm_medium=blog&amp;amp;utm_campaign=launch_b_ru"&gt;PDF to PNG&lt;/a&gt;, внезапно забралось на первое место в поиске Chrome Web Store по запросу &amp;ldquo;pdf to png&amp;rdquo; (ну, почти всегда), и им пользуются аж под 500 человек - это потрясающе!&lt;/p&gt;
&lt;p&gt;Раз PDF в картинки получилось, немедленно загорелось сделать и наоборот - картинки -&amp;gt; PDF, только ещё круче: чтоб работало через правый клик по картинке на любой странице, чтоб была лёгкая(!) возможность настроек - и чтоб всё прям локально в браузере и картинки при этом никуда не загружались!&lt;/p&gt;
&lt;p&gt;Все замечательные настройки поместил в сайд-панель, вот только обычный пользователь может же никогда не догадаться её открыть, а таки хотелось бы дать о ней знать, но при этом не дёргать тех, кому достаточно меню правой кнопки мыши - что ж, будем показывать её &lt;strong&gt;иногда&lt;/strong&gt; (ну или пока пользователь явно не кликнет куда-то в панель).&lt;/p&gt;
&lt;p&gt;Эта хотелка упёрлась в правило Хрома: открыть панель можно только в ответ на клик, а в обработчике клика по пункту меню это значит - до первого &lt;code&gt;await&lt;/code&gt;. А чтобы показывать иногда, на каждом клике расширение должно помнить, сколько раз уже её показало, - а прочитать это из хранилища и есть &lt;code&gt;await&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Решение - хранить счётчик прямо в id пункта контекстного меню! :)&lt;/p&gt;
&lt;p&gt;И вот - &lt;strong&gt;&lt;a href="https://chromewebstore.google.com/detail/nicmmholfekimgabmengbofglgmphnpf?utm_source=asd&amp;amp;utm_medium=blog&amp;amp;utm_campaign=launch_b_ru"&gt;Save Image as PDF&lt;/a&gt;&lt;/strong&gt;. Правый клик - и картинка уже PDF.&lt;/p&gt;
&lt;video width="100%" autoplay loop muted playsinline style="border-radius: 8px; margin: 20px 0;"&gt;
&lt;source src="https://www.agilesoftwaredevelopment.com/images/save-image-as-pdf/demo.mp4" type="video/mp4"&gt;
Ваш браузер не поддерживает тег video.
&lt;/video&gt;</description></item></channel></rss>