Полезная информация

Пользователи не любят читать документацию. Станьте оригинальным, будьте не как все. Ознакомьтесь с нашей базой знаний.

№112606-03-2024 06:35:39

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 608
UA: Firefox 72.0

Re: Greasemonkey

Farby пишет

Ultima2m пишет Есть у кого скриптЭто не скрипт, это настройки  Middlemouse.paste

О, спасибо, заработало. А Blink Selected сломали?

Отсутствует

 

№112715-05-2024 22:12:14

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: Firefox 125.0

Re: Greasemonkey

Добрый день!
Можно ли в при работающем скрипте в ТамперМанки принудительно скрывать/показывать кнопку созданную определенным скриптом?

Есть прикольный скрипт с закадровым переводом от яндекса.
https://github.com/ilyhalight/voice-over-translation

Встраивается в поддерживаемые браузерные плееры, в том числе и Ютуб.

Но при работающем скрипте, при движении курсора по окну плеера постоянно маячит - то появляясь, то исчезая, кнопка переводчика.
Отвлекает внимание, то она посреди экрана, то сбоку.

Было бы здорово держать эту кнопку скрытой и при необходимости показывать ее.
Например, новой кастомной кнопкой в панели меню справа от адресной строки, или зажатым Ctrl + ПКМ по экрану проигрывателя...
В ТМ можно включить и выключить скрипт, но необходима перезагрузка страницы, на горячую не работает.

Отредактировано leex (16-05-2024 20:27:12)

Отсутствует

 

№112823-05-2024 14:10:14

soll
Участник
 
Группа: Members
Зарегистрирован: 18-03-2014
Сообщений: 114
UA: Firefox 115.0

Re: Greasemonkey

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

Отсутствует

 

№112925-05-2024 03:24:43

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: Firefox 126.0

Re: Greasemonkey

Это в далеких планах на неопределенное будущее.
Сейчас автор решает другие, более важные вопросы связанные с работой этого замечательного скрипта.

Отсутствует

 

№113025-05-2024 09:40:37

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1647
UA: Firefox 127.0

Re: Greasemonkey

leex
Муть, там дело в стиле, а не в скрипте. Стиль в скрипте. Вполне кнопку можно загнать за край экрана или в угол. Я просто не знаю чем разжать не тратя на это уйму времени. Пусть даст несжатый скрипт, или хотя бы стиль из срипта.

Отсутствует

 

№113126-05-2024 17:45:57

leex
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 322
UA: Firefox 126.0

Re: Greasemonkey

_zt пишет

Муть, там дело в стиле, а не в скрипте. Стиль в скрипте. Вполне кнопку можно загнать за край экрана или в угол. Я просто не знаю чем разжать не тратя на это уйму времени. Пусть даст несжатый скрипт, или хотя бы стиль из срипта.


Попросил автора несжатый скрипт или стиль.
Отправил пользователь:

скрытый текст

.vot-segmented-button {
    opacity: 0 !important;
    overflow: visible;
}

.vot-segmented-button:hover {
    opacity: 1 !important;
}

.vot-segmented-button:before {
    content: '';
    position: absolute;
      inset: -150px -200px; // hover size
}

.vot-segment-label {
    display: none;
}

.vot-segmented-button[data-status="error"] .vot-segment-label {
    display: block;
}

Автор написал

в src

скрытый текст
https://github.com/ilyhalight/voice-over-translation/tree/master/src

скрытый текст

Чтобы не быть испорченным телефоном
https://github.com/ilyhalight/voice-over-translation/issues/606#issuecomment-2132152836

Отредактировано leex (19-06-2024 05:27:31)

Отсутствует

 

№113226-08-2024 19:57:28

_zt
Участник
 
Группа: Members
Зарегистрирован: 10-11-2014
Сообщений: 1647
UA: Firefox 128.0

Re: Greasemonkey

leex
Надо было в личку мне писать. Вам там готовый стиль дали, для stylish.
   
xrun1
Спасибо за обновление для дзена. Ведь смотрел и видел отличие, но не допер link убрать.

Отсутствует

 

№113326-09-2024 02:59:49

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1227
UA: Firefox 130.0

Re: Greasemonkey

Продублирую скрипт здесь.
Браузеры Edge, Cent, Opera (проверял только эти) копируют картинку по Ctrl+C.
[firefox] по этому сочетанию копирует урл-адрес картинки из адресной строки. Сделал скрипт, который по Ctrl+A --> Ctrl+С копирует картинку, а просто по Ctrl+С только адрес.
Проверял в Tampermonkey.

скрытый текст

Выделить код

Код:

// ==UserScript==
// @name         Copy image with Ctrl+C (copy)
// @namespace    https://forum.mozilla-russia.org/viewtopic.php?pid=811018#p811018 Firefox Browser
// @version      1.0
// @description  Copy the image from Firefox browser using the keyboard shortcut Ctrl+C
// @author       xrun1
// @match        https://*/*
// @match        file:///*/*
// @icon         data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACAElEQVQ4jcWTPWtUQRSGnzlncvcj2UgMRtj4AcEmEEhhpYViITbapRHSaCF2/gshjX/BRi2CjYUQFFHsLRWRICokQhZiiJq79+49cyzuLnGLgJ0vDAPzDs85M7wH/rfC2sOnvvmjxN0RwDxQ+cgWhAGGIAJm1Hc0QRVY6CTix92SF3M3xqhz2uNS6yVv86vs2Ikjq1dbz4iigaYM0Qm6us3r+fOo5FhqcWXrHdvWrf2/lSCqI8GgGSNNCWQxsjK1jkoOFlDJWZlaJxv6YytGPEB0BcVAEpqg592xQj3vMjH06zb0sAMLSEiJTCIZSiYNnherbPxepQxtNvqrbBQ3acZIRkZLS5ZPr3F5cYX5mVeAEO48eOIfFq4xO/2GTvsLZcrY3Vtmr38Rca+fk5R29o2lM7dpZT1IYNH4tXGX2Gl94sLSfTI5IJliBxWnGk6RT7Ozf53d8hbt9mfOnbyHMqDsA66ECjoT74mt7CtVKLAiUh04RRGociiLfTrlY45PPqJ1bALMSQMwV0JwUnLEnZj/TOTfDRUhVUbZd9KgTlJ7pkFQY9BPECAEJbpjIRESVJUQAcr9VH/rUNpQokGRl2iAFECjQnBSqGGeQLAaADaekdIoR2kbnbmhaQSrd68gdqcW0c02OkqaCWCYgBj1HKgdzgGgCJaM2cmzR8b8n/UHcLLgLSViuSsAAAAASUVORK5CYII=
// @grant        none
// ==/UserScript==

(function() {
  'use strict';
  // получаем адресную строку
  var stringPathName = window.location.pathname;
  // убираем сдвоенные слэши, бывают такие https://www.eurokdj.com//images/singles/c/sin_corona-the_rhythm_of_the_night.jpg
  stringPathName = stringPathName.trim()
    .replace('//', '/');
  // ищем позицию последней точки
  var count = stringPathName.lastIndexOf('.');
  // проверяем, есть точка? длина больше, чем позиция  последней точки?
  if (count <= 0) {
    return;
  } else if (stringPathName.length <= count + 1) {
      return;
  }
  // получаем расширение
  var img_ext = stringPathName.substring(count + 1);
  // список допустимых расширений
  const array_images = ['bmp', 'gif', 'ico','jpeg', 'jpg', 'png', 'svg', 'webp']; // gif - копируется текущий кадр; svg не работает, можно убрать
  // есть полученное расширение в списке?
  if (!array_images.includes(img_ext)) return;

// код скопирован отсюда ==>> https://openjavascript.info/2022/09/27/how-to-copy-an-image-to-the-clipboard-with-vanilla-javascript/ <<==
  const img = new Image();
  const canvas = document.createElement('canvas');
  const ctx = canvas.getContext('2d');

  // Ctrl+A
  var ctrl_a = false;
  document.addEventListener('keydown', function(event) {
    if (event.code == 'KeyA' && (event.ctrlKey || event.metaKey)) {
      if (!ctrl_a) ctrl_a = true;
    }
  });
  // Ctrl+C
  document.addEventListener('keydown', function(event) {
    if (event.code == 'KeyC' && (event.ctrlKey || event.metaKey)) {
        if (ctrl_a) {
          event.preventDefault();
          copyToClipboard(stringPathName);
        } else {
          alertTimeout("Only the link was copied!", 1000, "blue");
          navigator.clipboard.writeText(window.location);
        }
    }
  });
  // снимаем выделение кликом в любом месте и убираем признак, что Ctrl+A нажато
  document.addEventListener('click', function(event) {
    ctrl_a = false;
  });

  // Ждём нажатия Ctrl+C
  // document.addEventListener('copy', function(event) {
  //  copyToClipboard(stringPathName);
  //});

  function writeToCanvas(src) {
    return new Promise((res, rej) => {
      img.src = src;
      img.onload = function() {
        canvas.width = img.naturalWidth;
        canvas.height = img.naturalHeight;
        ctx.drawImage(img,0,0)
        canvas.toBlob((blob) => {
          res(blob);
        }, 'image/png');
      }
    });
  }

  async function copyToClipboard(src) {
    const image = await writeToCanvas(src);
    try {
      await navigator.clipboard.write([
         new ClipboardItem({
           [image.type]: image,
         })
      ]);
//      console.log("Success");
      alertTimeout("Successful image copying!", 1000, "blue");
    } catch(err) {
      console.log("Copy failed: " + err);
    }
  }

    // Выводит сообщение об успешном копировании; неуспешное запишется в лог консоли (теоретически...)
    function alertTimeout(mymsg, mysecs, mybgcolor) {
    var myelement = document.createElement("div");
    var L_msg = window.innerWidth/2 - 100;
    var T_msg = window.innerHeight/2 - 15;
    myelement.setAttribute("style","background-color: " + mybgcolor + "; color: white; width: 200px; height: 30px; position: fixed; left: " + L_msg + "px;" +
                           "top: " + T_msg + "px; margin: auto; border: 1px solid #ffd700; font-family: verdana; font-size: 12px; display: flex;" +
                           "align-items: center; justify-content: center; text-align: center; opacity: 0.6; z-index: 99999;");
    myelement.innerHTML = mymsg;
    document.body.appendChild(myelement);
    setTimeout(function() {
      myelement.parentNode.removeChild(myelement);
    }, mysecs);
  }
})();

Отредактировано xrun1 (28-10-2024 09:11:01)

Отсутствует

 

№113428-09-2024 14:08:49

dinn
Участник
 
Группа: Members
Зарегистрирован: 28-09-2024
Сообщений: 25
UA: Firefox 130.0

Re: Greasemonkey

xrun1 не тестил, но на http://*/* navigator.clipboard работать не будет

Отсутствует

 

№113528-09-2024 17:13:52

xrun1
Участник
 
Группа: Members
Зарегистрирован: 12-12-2013
Сообщений: 1227
UA: Firefox 130.0

Re: Greasemonkey

dinn пишет

работать не будет

Спасибо, Вы правы, упустил этот момент.

Отсутствует

 

№113628-09-2024 17:28:39

dinn
Участник
 
Группа: Members
Зарегистрирован: 28-09-2024
Сообщений: 25
UA: Firefox 130.0

Re: Greasemonkey

xrun1 можно вкрутить GM.setClipboard. Вроде в новой версии идет уже из короби, т.е. не нужно прописки через @grant, либо как-то в скрипте задействовать doCommand("cmd_copy")

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]