Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337

Расширение для Яндекс браузера

06.01.2025, 08:35. Показов 9568. Ответов 107
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте не уверен, что в ту ветку пишу, посему уважаемы модераторы можете перезалить топик в нужную ветку
Предположим в буфере обмена находится текст:
«тема письма*I:\ТЗ.txt*8111@mail.ru, 8222@mail.ru»
То есть в буфере находятся тема письма, путь к файлу, который нужно приложить к письму и емейл адрес или адреса разделённые запятой, куда нужно отправить письмо или письма.
Задача: пользователь заходит в Яндекс браузер в свой почтовый ящик, нажимает кнопку «Написать» и всё то, что имеется в буфере обмена нужно, чтобы автоматически сделалось – заполнились поля: Кому, Тема и приложился указанный файл, чтобы осталось пользователю только нажать кнопку «Отправить», как это сделать?
То есть я захожу в свою почту, нажимаю кнопку «Написать» - это событие, ПО должно проверить есть ли в буфере обмена строка удовлетворяющая требованиям, в данном случае наличие двух знаков "*", если есть, тогда действовать согласно требуемого сценария
видимо нужно написать расширение для браузера, чтобы поддерживало Яндекс браузер или уже есть готовые? Попытался использовать Violentmonkey, установил, создал скрипт

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// ==User Script==
 
// @name         Auto Fill Yandex Mail
 
// @namespace    http://tampermonkey.net/
 
// @version      0.1
 
// @description  Автоматически заполняет поля в Яндекс Почте из буфера обмена
 
// @author       Ваше имя
 
// @match        https://mail.yandex.ru/*
 
// @grant        clipboardRead
 
// ==/User Script==
 
 
(function() {
 
    'use strict';
 
 
    // Добавляем слушатель события на кнопку "Написать"
 
    document.addEventListener('click', async function(event) {
 
        if (event.target.classList.contains('mail-ComposeButton')) {
 
            try {
 
                // Получаем текст из буфера обмена
 
                const text = await navigator.clipboard.readText();
 
 
 
                // Проверяем наличие двух знаков "*"
 
                if (text.split('*').length - 1 === 2) {
 
                    const parts = text.split('*');
 
                    const emailSubject = parts[0]; // Тема письма
 
                    const filePath = parts[1]; // Путь к файлу (не используется в этом примере)
 
                    const emailAddresses = parts[2]; // Емейлы
 
 
                    // Заполняем поля "Кому" и "Тема"
 
                    document.querySelector('input[name="to"]').value = emailAddresses;
 
                    document.querySelector('input[name="subject"]').value = emailSubject;
 
 
                    // Здесь можно добавить логику для прикрепления файла, если это необходимо
 
                    console.log("Поля заполнены!");
 
                } else {
 
                    console.log("Содержимое буфера обмена не удовлетворяет требованиям.");
 
                }
 
            } catch (err) {
 
                console.error("Ошибка при доступе к буферу обмена: ", err);
 
            }
 
        }
 
    });
 
})();
но получил сообщение от расширения "Неверный скрипт! Безымянный" и чтобы Не гадать, лучше спросить, спасибо
и почему он Безымянный, когда сказано: @name Auto Fill Yandex Mail
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.01.2025, 08:35
Ответы с готовыми решениями:

Возможно ли на javascript создать расширение для браузера, которое бы авторизовывалось в vk?
Возможно ли на javascript создать расширение для браузера (chrome,firefox,opera), которое бы авторизовывалось в vk?

"Управляемое" расширение для браузера
Хочу написать "управляемое"(внешней программой) расширение. Под "управлением" понимаю некий "костыль", т.к. нормальная...

Расширение для браузера
Я хочу сделать расширение для браузера по подобию похожего расширения, есть некий сервис похожий на мой и там есть полезное расширение,...

107
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 20:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от diadiavova Посмотреть сообщение
Появилась форма и в нее вставились данные из кода. Что еще нужно?
ок, а можно скрин? в яндекс браузере делали? я там
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:01
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ок, а можно скрин? в яндекс браузере делали? я там
Да в яндексбраузере. Запись экрана приложил (записал как смог)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 21:30  [ТС]
diadiavova, спасибо за ваши ответы, за помощь
у меня сейчас реализовано так, текст файла content.js=код с вашего сообщения № 40
манифест:
Code
1
2
3
4
5
6
7
8
9
10
{
  "manifest_version": 3,
  "name": "EDDS ZGO",
  "version": "1.0",
  "description": "ЕДДС ЗГО",
  "icons": {"16": "icon16.png", "48": "icon48.png", "128": "icon128.png"},
  "action": {"default_popup": "popup.html", "default_icon": "icon48.png"},
  "permissions": ["activeTab"],
  "content_scripts": [{"matches": ["https://mail.yandex.ru/*"], "js": ["content.js"]}]
}
не работает, ЧЯДНТ? спасибо
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:35
Попробуй ровно то, что я вводил в консоль
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const writeButton = document.querySelector("a[href='#compose']"); // Заменён селектор на правильный
    const text = "тема письма*I:\ТЗ.txt*8111@mail.ru, 8222@mail.ru";
    if (writeButton)
    {
      writeButton.addEventListener('click', () =>
      {
        setTimeout(function ()
        {
          if (text.split('*').length - 1 === 2)
          {
            const parts = text.split('*');
            const emailSubject = parts[0]; // Тема письма
            const filePath = parts[1]; // Путь к файлу (не используется в этом примере)
            const emailAddresses = parts[2]; // Емейлы
            document.querySelector('#compose-field-1').textContent = emailAddresses;
            document.querySelector('input[name="subject"]').value = emailSubject;
            console.log("Поля заполнены!");
          }
          else
          {
            console.log("Содержимое буфера обмена не удовлетворяет требованиям.");
          }
        }, 1000);
      });
    }
    else
    {
      alert('Кнопка "Написать" не найдена!');
 
    }
Добавлено через 1 минуту
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
сообщения № 40
Скорей всего не нужно впихивать все это в обработчик DOMContentLoaded. По умолчанию контент-скрипты ЕМНИП выполняются уже после загрузки страницы и, соответственно, после этого события.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 21:37  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Попробуй ровно то, что я вводил в консоль
попробовал код из сообщения 44, увы НЕ работает
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:40
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
попробовал код из сообщения 44, увы НЕ работает
Этот код добавляет обработчик события к кнопке. То есть после его выполнения надо кнопку "Написать" нажать.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 21:49  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Этот код добавляет обработчик события к кнопке. То есть после его выполнения надо кнопку "Написать" нажать.
сорри я в вебе не очень)), то что нужно нажать кнопку - я конечно жму, форму получаю, а можно в коде добавить реализацию того, чтобы я знал кода её нажать?

Добавлено через 4 минуты
кстати у мня сейчас два файла с js кодом:
popup.js и content.js
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:50
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а можно в коде добавить реализацию того, чтобы я знал кода её нажать?
Реализацию чего?
Миниатюры
Расширение для Яндекс браузера  
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 21:51  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Реализацию чего?
ну того, я её точно НЕ жму раньше времени))
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:54
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ну того, я её точно НЕ жму раньше времени))
А что, с этим есть проблемы? По идее страница загрузилась и обработчик добавляется сразу. Это мгновение.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 21:55  [ТС]
ну тогда последнее осталось, прикрепите пжл всё Ваше расширение и тогда уж верняк))
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 21:57
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ну тогда последнее осталось, прикрепите пжл всё Ваше расширение и тогда уж верняк))
А у меня его нет )) Я для яндекс-браузера никогда ничего не делал. Я им и пользуюсь-то только для перевода видеороликов )). Могу для файрфокса сделать по-быстрому.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 22:00  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Могу для файрфокса сделать по-быстрому.
и на том спасибо большое
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 22:14
Ципихович Эндрю, Короче, я попробовал собрать и тут выяснилось, что основной контент страницы тоже, судя по всему грузится не сразу и скриптом. То есть удалось все это запустить только с помощью задержки
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
setTimeout(
function () {
    
    const writeButton = document.querySelector("a[href='#compose']"); // Заменён селектор на правильный
        const text = "тема письма*I:\ТЗ.txt*8111@mail.ru, 8222@mail.ru";
        if (writeButton)
        {
          writeButton.addEventListener('click', () =>
          {
            setTimeout(function ()
            {
              if (text.split('*').length - 1 === 2)
              {
                const parts = text.split('*');
                const emailSubject = parts[0]; // Тема письма
                const filePath = parts[1]; // Путь к файлу (не используется в этом примере)
                const emailAddresses = parts[2]; // Емейлы
                document.querySelector('#compose-field-1').textContent = emailAddresses;
                document.querySelector('input[name="subject"]').value = emailSubject;
                console.log("Поля заполнены!");
              }
              else
              {
                console.log("Содержимое буфера обмена не удовлетворяет требованиям.");
              }
            }, 1000);
          });
        }
        else
        {
          alert('Кнопка "Написать" не найдена!');
     
        }
    addEventListener("DOMContentLoaded", function () {
        
    })
}
    ,
1000)
Расширение могу выложить, но там только манифест и этот скрипт, так что ничего интересного.

Добавлено через 4 минуты
Блин, я сначала напсал setInterval вместо setTimeout, оно сработало, но так делать не надо. С таймаутом пока не получилось. Подожди подгоню малость
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 22:15  [ТС]
diadiavova
Цитата Сообщение от diadiavova Посмотреть сообщение
Расширение могу выложить, но там только манифест и этот скрипт, так что ничего интересного
для меня это очень интересно=нужно
ок выложите, а то опробовал код с сообщения 54 - тоже не заработало, а так уже точно будет....
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 22:18
Вот так работает
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
setTimeout(
function () {
    
    const writeButton = document.querySelector("a[href='#compose']"); // Заменён селектор на правильный
        const text = "тема письма*I:\ТЗ.txt*8111@mail.ru, 8222@mail.ru";
        if (writeButton)
        {
          writeButton.addEventListener('click', () =>
          {
            setTimeout(function ()
            {
              if (text.split('*').length - 1 === 2)
              {
                const parts = text.split('*');
                const emailSubject = parts[0]; // Тема письма
                const filePath = parts[1]; // Путь к файлу (не используется в этом примере)
                const emailAddresses = parts[2]; // Емейлы
                document.querySelector('#compose-field-1').textContent = emailAddresses;
                document.querySelector('input[name="subject"]').value = emailSubject;
                console.log("Поля заполнены!");
              }
              else
              {
                console.log("Содержимое буфера обмена не удовлетворяет требованиям.");
              }
            }, 2000);
          });
        }
        else
        {
          alert('Кнопка "Написать" не найдена!');
     
        }
    addEventListener("DOMContentLoaded", function () {
        
    })
}
    ,
2000)
Здесь я две секунды жду загрузки контента и столько же жду появления формы. Как уже выше писал, более надежно и спользовать MutationObserver, но там логика сложнее будет.
1
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 22:20
Выкладываю
Вложения
Тип файла: 7z yamail.7z (1.1 Кб, 2 просмотров)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 22:31  [ТС]
нет-не работает, выложите пжл готовое расширение, а увидел, выложили
спасибо займусь завтра сравнивать вашу и мою реализацию, а пока не подскажите пожалуйста, есть расширение для Яндекс браузера в нём я устанавливаю пользователя, в хтмл коде это реализовано: <h1 id="fio_do">Фамилия Имя Отчество</h1>
который меняет скрипт джавыскрипта, как впоследствии можно с ворда прочитать что-же там установлено в id "id_fio"? топик создавал в ветке VBA: Ворд получить иконку расширения в Яндекс браузере, пока ответа нет, есть мысли? обратно передавать информацию через буфер обмена уже НЕ есть гут))

Добавлено через 8 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
займусь завтра
не стал тянуть - загрузил не в Лису, а в Яндекс браузер они же на одном движке, и увы НЕ работает, что это может быть? может какие настройки?
0
 Аватар для diadiavova
7261 / 2608 / 745
Регистрация: 11.04.2015
Сообщений: 4,155
Записей в блоге: 43
13.01.2025, 23:17
Ципихович Эндрю, я уже написал, что с яндекс-браузером я не работал. В лису можно загрузить расширение из файла, но если оно не проверено, то это можно сделать не во всех лисах. Можно поставить ESR версию и там надо снять флажок xpinstall.signatures.required в настройках. Но вообще, для проверки работы можно загрузить в девелоперском режиме. Кроме того, я посмотрел, для манифеста версии 3, нужно обязательно в манифест добавить идентификатор, специфичный для браузера, в той версии что я выложил я этого не сделал. Вот так работает
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
    "manifest_version": 3,
    "name": "EDDS ZGO",
    "version": "1.0",
    "description": "ЕДДС ЗГО",
    "permissions": [
        "activeTab"
    ],
    "content_scripts": [
        {
            "matches": [
                "https://mail.yandex.ru/*"
            ],
            "js": [
                "content.js"
            ]
        }
    ],
    "browser_specific_settings": {
        "gecko": {
            "id": "mailformdatainsertion@yandex.ru",
            "strict_min_version": "58.0"
        }
    }
}
Но еще раз говорю, лучше проверять все в режиме разработчика.

Добавлено через 5 минут
Разобрался как загрузить в яндекс-браузер. Все работает.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,337
13.01.2025, 23:42  [ТС]
Цитата Сообщение от diadiavova Посмотреть сообщение
Разобрался как загрузить в яндекс-браузер. Все работает.
а там манифест какой?

Добавлено через 1 минуту
а то расширение при загрузке ругается на
Code
1
2
3
4
5
6
    "browser_specific_settings": {
        "gecko": {
            "id": "mailformdatainsertion@yandex.ru",
            "strict_min_version": "58.0"
        }
    }
джипити советует
Code
1
2
3
4
5
6
"browser_specific_settings": {
    "yandex": {
        "id": "mailformdatainsertion@yandex.ru",
        "strict_min_version": "21.0"
    }
}
верно?

Добавлено через 5 минут
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
расширение при загрузке ругается
также и на
Code
1
2
3
4
5
6
"browser_specific_settings": {
    "yandex": {
        "id": "mailformdatainsertion@yandex.ru",
        "strict_min_version": "21.0"
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2025, 23:42

Расширение для Браузера
Дарова народ, я тут решил попробовать создать расширения для Браузера(Опера GX, если так важно). Но ни как не получается реализовать...

Расширение для браузера
у меня есть расширение просто файлом js идёт оно для гугла хрома и мазилы но его может стырить любой желающий тут я стал переделывать под...

Расширение для браузера(Цензура)
Дарова народ, я тут клепаю расширение для браузера(Цензура), однако мне нужно использовать нейросеть(к сожалению это обязательная часть)...

Расширение-автоклик для браузера
Привет! Я в программировании на JavaScript новичек. Мне нужно сделать расширение для браузера, которое на определённом сайте при нажатии к...

Расширение для браузера, возможности
Посдкажите, возможно ли в принципе реализовать следующий функционал на JS в рамках расширения для браузера (например, для Хрома). От...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru