Как в Яндекс Вордстат одним кликом сделать из WS - "[!WS]"

Уже пару месяцев у меня в планах было сделать простенькое расширение для Google Chrome, чтобы по клику добавлять в Яндекс Wordstat операторы соответствия. Очень часто нужно быстро проверить одно или пару ключевых слов, и приходится всё время добавлять вручную кавычки, ставить восклицательные знаки - страшно предположить, сколько времени на это было потрачено в общей сложности. С массовой проверкой понятно - инструменты есть, а вот с одним ключом не очень удобно.

Пока собирался меня осенило, что никакого расширения мне для этого не надо - проще и, пожалуй, даже удобнее использовать старые добрые букмарклеты. Открываю DeepSeek, 15 минут — и инструмент мечты готов.

Как создать букмарклет

Создать закладку в браузере и вместо URL вставить JavaScript-код.

Кто опасается брать код из статьи, вполне может повторить путь и закодить всё самостоятельно.

Ниже — непосредственно сам код для букмарклета.

из WS в "[!WS]"

javascript:(function(){const e=document.querySelector('input.textinput__control[data-lego="react"][type="text"]');if(!e)return alert('Поле не найдено');const t=e.value.trim();if(!t)return alert('Поле пустое');const n='"[!'+t.split(/\s+/).join(' !')+']"';Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,'value').set.call(e,n);const o=new Event('input',{bubbles:!0});e.dispatchEvent(o);const c=new Event('change',{bubbles:!0});e.dispatchEvent(c);e.select();const b=document.querySelector('button.wordstat__search-button[data-lego="react"]');if(b){setTimeout(()=>{b.click()},300)}else{alert('Кнопка не найдена')}})();

Из WS в "!WS"

javascript:(function(){const e=document.querySelector('input.textinput__control[data-lego="react"][type="text"]');if(!e)return alert('Поле не найдено');const t=e.value.trim();if(!t)return alert('Поле пустое');const n='"!'+t.split(/\s+/).join(' !')+'"';Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,'value').set.call(e,n);const o=new Event('input',{bubbles:!0});e.dispatchEvent(o);const c=new Event('change',{bubbles:!0});e.dispatchEvent(c);e.select();const b=document.querySelector('button.wordstat__search-button[data-lego="react"]');b&&setTimeout(()=>b.click(),300)})();