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

Общайтесь со знакомыми и друзьями в нашей группе в Контакте.

№100107-02-2020 19:07:35

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1400
UA: Firefox 68.0

Re: Greasemonkey

vending_machine пишет

Внимание, вопрос знатокам.
Какой код открытия боковой панели?

Минута пошла

Отредактировано Stkvsky (07-02-2020 19:07:54)

Отсутствует

 

№100229-03-2020 16:00:35

Acid Crash
Участник
 
Группа: Members
Зарегистрирован: 03-11-2013
Сообщений: 319
UA: Firefox 74.0

Re: Greasemonkey

Доброго времени суток.
Необходима помощь со скриптом для Youtube.
Надобно, чтобы при нажатии на канал из списка подписок (из сайдбара) по умолчанию открывалась секция/вкладка Видео(Videos) вместо дефолтной Главная(Home).


Предисловие.
Подобная фича была реализована в одной из предыдущих версий расширения Iridium (версия 0.25). Прям в интерфейсе настроек
https://addons.mozilla.org/ru/firefox/a … m/versions

Суть в том, что вкладка Видео(Videos) открывалась автоматический при клике на канал из подписок БЕЗ общего рефреша/релоада страницы.
037edcaeee7050f8f80e4d97a79f454a.png
Если не ошибаюсь в функции default_channel_tab (файл Iridium.user.js)


Расширение сейчас переживает не лучшие времена: его переписывают с ноля, скорость разработки не очень быстрая, а со старой версией начались проблемы совместимости.
По правде говоря именно интересующая меня фича сейчас всё ещё работает если скачать упомянутую выше версию.
На просторах интернета нашел вот такую реализацию скрипта.
https://greasyfork.org/zh-CN/forum/disc … e-channels
Но вот в ней присутствует тот самый еффект общего рефреша/релоада страницы, что вызывает дискомфорт.


Возможно найдутся знатоки, которые смогут восстановить фичу в более юзабельном виде (БЕЗ общего рефреша/релоада страницы)?
Заранее благодарен за помощь.


P.S. Что-то теги spoiler и noindex отказываются работать...

Отсутствует

 

№100331-03-2020 16:30:07

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

Re: Greasemonkey

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

Наверное именно поэтому происходит рефреш/релоад и не понятно как может быть по другому.

Отсутствует

 

№100431-03-2020 17:00:33

Acid Crash
Участник
 
Группа: Members
Зарегистрирован: 03-11-2013
Сообщений: 319
UA: Firefox 74.0

Re: Greasemonkey

_zt
Думаю при должно сноровке можно и без рефреша сделать. Собственно в расширении оно без него работает...

Отсутствует

 

№100509-05-2020 08:43:47

Andrey4
Участник
 
Группа: Members
Зарегистрирован: 09-05-2020
Сообщений: 2
UA: Firefox 76.0

Re: Greasemonkey

Подскажите, почему может не срабатывать любой скрипт при старте браузера на домашней странице?
Mozilla Firefox 76
Greasemonkey 4.9
Скрипт любой, вплоть до


// ==UserScript==
// @name     Hello
// @version  1
// @grant    none
// ==/UserScript==

alert("HELLO");


Домашняя страница любая
Если нажать F5, то дальше срабатывает как часы. Но мне нуно чтобы он был запущен сразу при старте браузера.
При том иногда, примерно раз из 10 запусков скрипт срабатывает сразу, без обновления страницы.

Отсутствует

 

№100609-05-2020 13:58:25

ifln
Участник
 
Группа: Members
Зарегистрирован: 20-09-2013
Сообщений: 218
UA: Firefox 60.0

Re: Greasemonkey

Andrey4 пишет

почему

Не заю. Но можно задать задержку.

Выделить код

Код:

// ==UserScript==
// @name     Hello
// @version  1
// @grant    none
// ==/UserScript==

(function(){
	setTimeout(function(){
		alert("HELLO")();
	}, 3000);
})();

Отсутствует

 

№100709-05-2020 23:19:05

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 397
UA: unknown 0.0

Re: Greasemonkey

Andrey4, добавь в шапку

Выделить код

Код:

// @run-at                      document-end

...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№100811-05-2020 09:08:17

Andrey4
Участник
 
Группа: Members
Зарегистрирован: 09-05-2020
Сообщений: 2
UA: Chrome 68.0

Re: Greasemonkey

ifln пишет

Не заю. Но можно задать задержку.

К сожалению не работает.


mokujin пишет

добавь в шапку

Выделить код

Код:

// @run-at                      document-end

Тоже не работает.


Пришлось перейти на Tampermonkey, там всё отрабатывает как часы. Спасибо за помощь.

Отсутствует

 

№100904-06-2020 17:36:50

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

Re: Greasemonkey

всем привет. еще в 2017 году (пост https://forum.mozilla-russia.org/viewtopic.php?pid=733849#p733849) комраду помог некий способ, который не проканал у меня,
ситуация та же - RSS Feedbro при настройках отображения новости прямо в ридере новость не отображает - появляется Похоже, вас пытаются обмануть
frame's hostname: rutracker.org
пользуюсь Tampermonkey, помогите допилить прошлый скрипт, чтобы убрать блкировку и вернуть отображение страницы

скрин

_333909d3180a397f2d0b1070f755f9da.jpeg

Отсутствует

 

№101005-06-2020 12:31:21

leshiy_odessa
Участник
 
Группа: Members
Зарегистрирован: 13-02-2009
Сообщений: 272
UA: Firefox 76.0

Re: Greasemonkey

Mrakobes666 пишет

всем привет. еще в 2017 году (пост https://forum.mozilla-russia.org/viewtopic.php?pid=733849#p733849) комраду помог некий способ, который не проканал у меня,

Я до сих пор им пользуюсь на стареньком 56.0.2.

Отсутствует

 

№101115-06-2020 20:49:26

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

Re: Greasemonkey

leshiy_odessa дружище, в двух словах подскажи как это реализовать, у мена ток не 56 а квантум и темпермонкей, какая инструкция - создать новый скрипт, вставляю (заменяя то что там типа шаблона) - но ТМ неактивен в этом окне, где Feedbro

кстати пока я был на даче изменилось сообщение

скрытый текст
Заблокировано политикой защиты содержимого

При соединении с rutracker.org произошла ошибка.

Firefox заблокировал данный способ загрузки этой страницы, так как страница имеет политику защиты содержимого, которая это запрещает.

Отредактировано Mrakobes666 (15-06-2020 20:51:35)

Отсутствует

 

№101215-06-2020 23:48:43

leshiy_odessa
Участник
 
Группа: Members
Зарегистрирован: 13-02-2009
Сообщений: 272
UA: Firefox 77.0

Re: Greasemonkey

Mrakobes666 пишет

подскажи как это реализовать, у мена ток не 56 а квантум

Без понятия.

Отсутствует

 

№101324-06-2020 13:27:08

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

Re: Greasemonkey

leshiy_odessa пишет

Без понятия.

вот что ответил автор расширения (перевод)

Этот сайт создается таким образом, что он "обнаруживает", когда он встроен в iframe. Тут уж ничего не поделаешь.
Однако вы можете добавить ленту и выбрать пункт "получить полное тело статьи" в раскрывающемся списке "содержимое записи ленты" (диалоговое окно "добавить ленту"). Затем вы можете использовать режим просмотра 3, и вы все еще видите содержимое статьи, и оно может быть обработано по правилам.

как побороть iframe то?

Отсутствует

 

№101416-07-2020 09:00:42

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 2764
UA: Firefox 78.0

Re: Greasemonkey

Встроенный переводчик Firefox показывает панель перевода на...неруских сайтах. Можно сделать аналогичное срабатывание скрипта? Что-бы скрипт срабатывал везде, кроме русскоязычных, или с указанным списков кодов стран.
Сам скрипт: Google Translation Bar

Отредактировано oleg.sgh (16-07-2020 09:02:01)

Отсутствует

 

№101517-07-2020 14:42:18

CoolCmd
Участник
 
Группа: Members
Зарегистрирован: 29-09-2008
Сообщений: 648
UA: Firefox 78.0

Re: Greasemonkey

oleg.sgh
в общем случае это сложно. атрибут lang не все ставят. например на этом форуме его нет.
можно частично скрыть панель, напримор если адрес ru или есть lang.
но вообще сама идея - везде вставлять этот хлам - глупая.


леса живет в лису?

Отсутствует

 

№101617-07-2020 14:45:24

dreamkz
Uchastnik
 
Группа: Members
Зарегистрирован: 04-03-2009
Сообщений: 780
UA: Firefox 78.0

Re: Greasemonkey

CoolCmd пишет

атрибут lang не все ставят. например на этом форуме его нет.

Вот и ответ. А то было непонятно, почему встроенный переводчик подхватывает не все сайты.

Отсутствует

 

№101717-07-2020 14:46:05

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 2764
UA: Firefox 78.0

Re: Greasemonkey

CoolCmd

везде вставлять этот хлам - глупая.

Спасибо, что пользуетесь API Яндекс.Переводчика.
С 31 июля 2020 года вы сможете бесплатно переводить 50 000 символов в день, а с 15 августа 2020 года мы закрываем доступ к бесплатному API Яндекс.Переводчика.

Ищу варианты.

Отсутствует

 

№101817-07-2020 14:56:08

CoolCmd
Участник
 
Группа: Members
Зарегистрирован: 29-09-2008
Сообщений: 648
UA: Firefox 78.0

Re: Greasemonkey

oleg.sgh нужно полноценное расширение, которое переводит по нажатию кнопки на панели браузера.


леса живет в лису?

Отсутствует

 

№101917-07-2020 14:58:44

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 2764
UA: Firefox 78.0

Re: Greasemonkey

CoolCmd
Я нашел лучше. Переводит автоматом с указанного языка.
Перевод веб-страниц

Отсутствует

 

№102017-07-2020 18:13:13

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

Re: Greasemonkey

oleg.sgh
Перевод плохой, часть не переведенным остается. И сдается мне оно отслеживает все посещения.

Отсутствует

 

№102122-07-2020 10:03:43

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 2764
UA: Firefox 78.0

Re: Greasemonkey

Нужен скрипт - открыть любую ссылку в новой вкладке, на переднем плане (активной). Без клавиш модификаторов и прочих плюшек.
Помогите, кто чем может )

Отредактировано oleg.sgh (22-07-2020 10:04:29)

Отсутствует

 

№102222-07-2020 11:02:18

mokujin
Участник
 
Группа: Members
Зарегистрирован: 17-02-2017
Сообщений: 397
UA: unknown 0.0

Re: Greasemonkey

oleg.sgh
Есть скрипт, который открывает ссылки в текущей вкладке(все, несмотря на trget и проя.) Не мой, чуть подправил, чтоб СКМ не отлавливал. Можешь поменять его логику:

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

Выделить код

Код:

// ==UserScript==
// @name          Open links in current tab
// @author        wOxxOm
// @description   Open links in current tab regardless of _target or site's preferences. Ctrl-click: background tab, Ctrl-Shift-click: foreground tab, Shift-click: new window, Alt-click: force open in current tab
// @namespace     http://target._blank.is.retarded
// @version       2.2.7
// @include       *
// @exclude             http*coub.com/*
// @exclude             http*vk.com/*
// @exclude             http*.userapi.com/*
// @exclude             http*.youtube.com/*
// @exclude             http*.googlevideo.com/*
// @run-at        document-start
// @grant         GM_openInTab
// ==/UserScript==

if (window == top) {
    window.addEventListener('message', function(e) {
        // some stupid sites choke on object data
        if (!/^\{/.test(e.data)) return;
        let data = tryParse(e.data);
        if (data.name == GM_info.script.name) navigate(data.url);
     });
   }

   let suppressing, clickedElement, link;

window.addEventListener('mousedown', function(e) { clickedElement = e.target; }, true);

window.addEventListener('mouseup', function(e) {
// Убрал действие на СКМ только ПКМ отслеживаеццо
//    if (e.button > 1 || e.target != clickedElement)
        if (e.button != 0 || e.target != clickedElement) return;
             link = pierceShadow(e);
        if (!link || (link.getAttribute('href') || '').match(/^(javascript|#|$)/) || !document.contains(link)) return;

    let b = e.button, c = e.ctrlKey, a = e.altKey, s = e.shiftKey, m = e.metaKey;
    if (b == 1 || c && !a && !m)      // вот здесь надо начинать шаманить, менять условия КМК
        GM_openInTab(link.href, !s || b == 1);
    else if (window.chrome && b === 0 && s && !c && !a && !m)
        link.cloneNode().dispatchEvent(new MouseEvent('click', {shiftKey: true}));
    else if (!c && !s && !m && !a) {
        if (link.target == '_blank')
            link.target = '';
            blockWindowOpenAndMutations(link);
            return;
          } else return;

    suppressing = true;
    prevent(e);
 }, true);

window.addEventListener('click', prevent, true);
window.addEventListener('auxclick', prevent, true);

function prevent(e) {
    if (!suppressing) return;
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();
    setTimeout(function() {
        suppressing = false;
    }, 50);
}

function blockWindowOpenAndMutations(link) {
    let observer = new MutationObserver(function() {
        if (link.target == '_blank') {
            link.removeAttribute('target');
            console.log('[Open links in current tab] prevented dynamic target=_blank for', link.href);
            navigate(link.href);
        }
    });
    observer.observe(link, {attributes:true, attributeFilter:['target'], characterData:true});

    let _open = unsafeWindow.open;
    let timeout = setTimeout(function() {
        unsafeWindow.open = _open;
        observer.disconnect();
    }, 50);

    unsafeWindow.open = exportFunction(function(url, name, features) {
        if (!features) {
            console.log('[Open links in current tab] prevented window.open for', url);
            navigate(link.href);
        } else {
              _open(url, name, features);
              unsafeWindow.open = _open;
              clearTimeout(timeout);
             }
    }, unsafeWindow);
}


function pierceShadow(e) {
    let el = e.target;
       while (el.shadowRoot) el = el.shadowRoot.elementFromPoint(e.clientX, e.clientY);
    return el.closest('a');
   }

function navigate(url) {
    if (window == top) {
        link = document.createElement('a');
        link.href = url;
        link.dispatchEvent(new MouseEvent('click'));
    } else { top.postMessage(JSON.stringify({name: GM_info.script.name, url: url}), '*'); }
}

function tryParse(str) {
    try { return JSON.parse(str); }
    catch(e) {}
}


...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation

Отсутствует

 

№102322-07-2020 11:21:24

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 2764
UA: Firefox 78.0

Re: Greasemonkey

mokujin

вот здесь надо начинать шаманить

Если бы ещё знать что шаманить. В таком виде скрипт не работает.
Кстати, этот  скрипт я видел, но не хватило тяму выкинуть его плюшки с модификаторами и СКМ.

Отредактировано oleg.sgh (22-07-2020 11:23:52)

Отсутствует

 

№102422-07-2020 13:11:51

Stkvsky
Участник
 
Группа: Members
Зарегистрирован: 26-06-2012
Сообщений: 1400
UA: Firefox 68.0

Re: Greasemonkey

oleg.sgh
Попробуй, хз работает, нет, давно пользовался

Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

Отредактировано Stkvsky (22-07-2020 13:13:43)

Отсутствует

 

№102522-07-2020 13:37:30

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

Re: Greasemonkey

Acid Crash
Скрипт перестал работать для каналов не из рекомендаций. У него, помимо проверки по окончанию "/featured", есть еще проверка по суффиксам /chennel/ и /user/, а теперь появился новый /c/. Добавил новый суффикс "c", вроде работает.
   

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

Выделить код

Код:

// ==UserScript==
// @name          YT channel shows Videos
// @match         https://www.youtube.com/*
// @run-at        document-start
// @license       MIT License
// @grant         none
// ==/UserScript==

(() => {
  const RX_CHANNEL_HOME = /^(https?:\/\/www\.youtube\.com\/(user|c|channel)\/[^/]+)(\/?$|\/featured)/;
  if (RX_CHANNEL_HOME.test(location.href)) {
    location.href = RegExp.$1 + '/videos';
    return;
  }
  addEventListener('mousedown', event => {
    const a = event.target.closest('a');
    if (a && RX_CHANNEL_HOME.test(a.href)) {
      a.href = RegExp.$1 + '/videos';
      try { a.data.commandMetadata.webCommandMetadata.url = a.href; } catch (e) {}
    }
  }, true);
})();

Отредактировано _zt (22-07-2020 13:39:06)

Отсутствует

 

Board footer

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