Хочу избавится от дополнений в которых я использую одну-две функции.
Стоит задача возврата панели дополнений без дополнительный адонов. В теме по userChrome.css привели ниже приведенный код для аддона Custom Buttons. Можно его как то адаптировать для Greasemonkey?
(function(){ if (document.getElementById("ctraddon_addon-bar") || document.getElementById("ctr_addon-bar")) return; const kNSXUL = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; Components.utils.import("resource:///modules/CustomizableUI.jsm"); // spring and wrapper let toolbarspring = document.createElementNS(kNSXUL, "spacer"); toolbarspring.setAttribute("flex", "1"); toolbarspring.setAttribute("id", "spring_revertAddonBarStatusBar"); toolbarspring.setAttribute("removable", "false"); let palette = document.getElementById("navigator-toolbox").palette; palette.appendChild(toolbarspring); let dmy = document.createElementNS(kNSXUL, "toolbaritem"); dmy.setAttribute("id", "ucjs-status-bar"); dmy.appendChild(document.getElementById("status-bar")); palette.appendChild(dmy); //create toolbar let addonbar = document.createElementNS(kNSXUL, "toolbar"); addonbar.setAttribute("id", "ucjs-addon-bar"); addonbar.setAttribute("customizable", "true"); addonbar.setAttribute("mode", "icons"); addonbar.setAttribute("iconsize", "small"); addonbar.setAttribute("context", "toolbar-context-menu"); addonbar.setAttribute("class", "toolbar-primary chromeclass-toolbar customization-target"); addonbar.setAttribute("toolbarname", "UCJS Add-on Bar"); addonbar.setAttribute("toolboxid", "navigator-toolbox"); //register toolbar.id try { CustomizableUI.registerArea("ucjs-addon-bar", { type: CustomizableUI.TYPE_TOOLBAR, defaultPlacements: ["spring_revertAddonBarStatusBar", "ucjs-status-bar"] }); } catch(ee) {} var bottombox = document.getElementById("browser-bottombox"); bottombox.appendChild(addonbar); let style = ' \ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); \ #ucjs-addon-bar { \ border-top: 1px solid threedshadow; \ border-bottom: 0 solid transparent; \ } \ \ #main-window[customizing] #ucjs-addon-bar { \ border: 1px dotted threedshadow; \ } \ \ #main-window[customizing] #ucjs-addon-bar #status-bar { \ border: 1px solid black; \ opacity: 0.5; \ } \ \ #main-window[customizing] #spring_revertAddonBarStatusBar { \ margin-left: 10px; \ margin-right:10px; \ border: 1px dashed threedshadow; \ } \ '.replace(/\s+/g, " "); let sspi = document.createProcessingInstruction( 'xml-stylesheet', 'type="text/css" href="data:text/css,' + encodeURIComponent(style) + '"' ); document.insertBefore(sspi, document.documentElement); sspi.getAttribute = function(name) { return document.documentElement.getAttribute(name); }; BookmarkingUI._updateCustomizationState(); })();
Отредактировано leshiy_odessa (24-04-2017 13:01:46)
Отсутствует
leshiy_odessa
Скрипты Greasemonkey внедряются в страницы сайтов и не имеют доступа к потрохам браузера.
Внутри браузера работают скрипты Custom Buttons и userChrome.js
Отредактировано yup (24-04-2017 13:09:19)
Отсутствует
yup
Не давно вы поделились со мной своим скриптом ''AntiGoogle''
https://forum.mozilla-russia.org/viewtopic.php?pid=734762#p734762
Для работы скриптов я пользуюсь Custom Buttons кнопкой ''UserScriptLoader''и там в меню указываются скрипты активные на данной странице.Так вот по каким бы я страницам ни ходил ''AntiGoogle''в меню не появляется.И вот у меня закралось подозрение что он не работает.
Прошу ваше помощи.
Отсутствует
Rag
Сейчас нет времени - автомобиль ждёт у крыльца "под парАми" Вернусь вечером - посмотрю.
Но определить, работает скрипт или нет, очень просто - на любой ссылке в поисковой выдаче Google щёлкнуть второй (правой) кнопкой мыши. Если в информационном окошке, где показывается, куда эта ссылка ведёт, (у меня это вообще строка статуса) ссылка изменится с красивой правильной, на длиннющую кошмарную, начинающуюся с "google.com", то скрипт не работает. Если же ссылка останется какой была - значит, скрипт своё дело сделал.
Отсутствует
yup
Спасибо за разъяснение.Работает.И ссылки с красивой на длиннющую кошмарную не изменяются.Это меня сбила менюшка в ''UserScriptLoader''Так что зря я тут забеспокоился.
И ещё один вопросик если можно.Реальна ли к воплощению моя хотелка.№11694
Ещё раз спасибо.
Отсутствует
Реальна ли к воплощению моя хотелка.№11694
Через Greasemonkey - нет. Но расширения, имеющие желаемую функциональность, существуют, а значит, и через Custom Buttons это сделать можно. Но есть ли смысл делать, если можно взять готовое расширение?
Отредактировано yup (03-05-2017 16:23:47)
Отсутствует
yup пишет:
Через Greasemonkey - нет. Но расширения, имеющие желаемую функциональность, существуют, а значит, и через Custom Buttons это сделать можно. Но есть ли смысл делать, если можно взять готовое расширение
Расширения не хотелось бы,да и названия не знаю.И вряд ли существует расширение с таким функцианалом как мне хочется.К стати говоря на Palemoon ещё и не каждое дополнение подходит.
Отредактировано Rag (03-05-2017 23:41:44)
Отсутствует
Расширения не хотелось бы
Разницы между кнопкой и расширением две:
1. Код кнопки гораздо легче самостоятельно править.
2. У расширения изменение настроек проще и нагляднее.
Ресурсоёмкость обоих вариантов одинаковая.
К стати говоря на Palemoon ещё и не каждое дополнение подходит.
Можно поперебирать в надежде:
Override User Agent
ua-site-switch
UAControl
Отсутствует
Подскажите, может ли кто поделиться скриптом GreaseMonkey, выдающим всплывающую подсказку с переводом слова с англ.языка на русский, при наведении мыши на него.
Как это раньше было в плагине Firefox "Яндекс-Элементы":
Отредактировано kdjy (05-05-2017 22:36:28)
К сожалению, большинство людей просто не видят общей картины, узкая специализация на отдельных науках и дисциплинах препятствует универсальному пониманию действительности.
Жак Фреско
Отсутствует
kdjy пишет:
Подскажите, может ли кто поделиться скриптом GreaseMonkey, выдающим всплывающую подсказку с переводом слова с англ.языка на русский, при наведении мыши на него.
Как это раньше было в плагине Firefox "Яндекс-Элементы":
Попробуйте может подoйдёт.
Google Translator Tooltip Expanded Fork
https://greasyfork.org/ru/scripts/16204-google-translator-tooltip-expanded-fork
Translate.google tooltip
https://greasyfork.org/ru/scripts/9285-translate-google-tooltip
Отредактировано Rag (06-05-2017 11:03:19)
Отсутствует
Не совсем то, что нужно, но спасибо за наводку!
Для перевода с помощью этих скриптов требуются лишние действия (выделить текст, подвести указатель в определенное место).
К сожалению, большинство людей просто не видят общей картины, узкая специализация на отдельных науках и дисциплинах препятствует универсальному пониманию действительности.
Жак Фреско
Отсутствует
kdjy, 2 клика по слову Lingualeo English Translator
Отсутствует
Спасибо вам, но тоже не совсем то.
Для перевода все равно требуется клик, а хотелось бы обойтись без него.
Как, например, перевести текст, являющийся ссылкой?
Если на него ткнешь мышью, загрузится другая страница (что не всегда требуется).
А если для перевода нужно выделить отдельное слово в ссылке, то это тоже весьма неудобно сделать в этом случае.
Может быть когда-нибудь раскурочу плагин, изучу JS и напишу собственный скрипт (если мозгов у меня хватит ).
Единственное, что не могу понять - как с помощью JavaScript вычислить слово под курсором мыши (не элемент, а конкретное слово).
Отредактировано kdjy (07-05-2017 15:29:44)
К сожалению, большинство людей просто не видят общей картины, узкая специализация на отдельных науках и дисциплинах препятствует универсальному пониманию действительности.
Жак Фреско
Отсутствует
kdjy
Как, например, перевести текст, являющийся ссылкой?
Отсутствует
Такая проблема - есть скрипт https://greasyfork.org/ru/scripts/811-r … indow-size. После обновления у меня отвалилась возможность регулировать громкость от дополнения Magic Action for Youtube. Я поискал старые версии, удалил текущую, но мне стало писать, что данный пользовательский скрипт не совместим с FF v53.0
Прошу помощи, хочется что бы хотя бы скрипт заработал, пусть даже без регулировки звука колесиком мышки. Спасибо!
upd: решил проблему установкой 96 версии скрипта и нажатием кнопки "включить" в панели аддонов. всем спасибо
Отредактировано LittleMontana (10-05-2017 17:13:47)
Отсутствует
Друзья, подскажите, существует ли в природе такой скрипт, чтоб разворачивал видео youtube в полный экран на сторонних сайтах?
Например вот здесь sovsport.ru у меня кнопка во весь экран не активна.
Отсутствует
Alex_one
И разворачивает на этом сайте, в том числе.
FYTE /Fast YouTube Embedded/ Player
Отсутствует
Друзья, подскажите, существует ли в природе такой скрипт, чтоб разворачивал видео youtube в полный экран на сторонних сайтах?
Отсутствует
Задачка задач
В роутерах TP-LINK есть возможность блокировать по спискам URL и IP. Добавлять 100-200 полей вручную как вы понимаете достаточно муторно и неэффективно (поначалу так и делал). Поэтому, если кому интересно, то сделайте пожалуйста скрипт для добавления URL или IP с локального списка. Если с локального списка проблематично, то в принципе ничего страшного можно и из списка в самом скрипте. Также есть одно ограничение. URL должен быть не более 31 символа. Я пришел к выводу, что ограничивать URL лучше с конца в начало.
Веб эмулятор на котором можно потренироваться — Access Control —> Target —> Edit
Списки для тренировки :
https://pastebin.com/esJfaW9m
https://pastebin.com/CKuKL81b
Отредактировано leshiy_odessa (30-05-2017 20:45:05)
Отсутствует
Нужно следующее:
Открытие ссылок всегда в новой вкладке для указанного домена...программа яндекс (tv.yandex.ru). например.
Нашел скрипт, с точность до наоборот - Открытие всех ссылок в текущей вкладке и похожий - Открыть внешнюю ссылку в новой вкладке.
Может кто может их переделать или написать новый?
Отсутствует
oleg.sgh
Переделать не тяжело, но:
1. Что в данном случае имеется в виду под доменом? например, в случае tv.yandex.ru домен - это yandex.ru, строго tv.yandex.ru или tv.yandex.ru включая его поддомены (напр. abc.tv.yandex.ru)?
2. Переход по ссылке не всегда происходит на тот адрес и тем образом, которые в этой ссылке указаны. Если на эту ссылку навешаны обработчики событий мышки или клавиатуры, то они могут задавать совсем другой адрес и способ. Надёжного метода борьбы с этим нет: единственный способ - добавить ещё и свой обработчик, но куда и как в этом случае произойдёт переход предсказать невозможно, так как порядок срабатывания обработчиков непредсказуем.
Добавлено 29-07-2017 03:12:18
Если интересует стргое совпадение с именем домена (т.е. хоста), то код скрипта может быть таким:
"use strict"; function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (anchor.hostname in hosts) anchor.target = "_blank"; });
Отредактировано yup (29-07-2017 03:12:18)
Отсутствует
yup
На данный момент, мне надо что бы кликом по названиям передач программы, описания открывались в новой вкладке. Только в самой программе, не касаясь других сервисов яндекса.
// ==UserScript== // @name Yandex // @namespace al // @include http*://tv.yandex.ru/* // @version 1 // @grant none // ==/UserScript== function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (anchor.hostname in hosts) anchor.target = "_blank"; });
Отредактировано oleg.sgh (29-07-2017 08:19:34)
Отсутствует
// ==UserScript== // @name YandexTV // @namespace YTV // @include http*://tv.yandex.ru/* // @version 1 // @grant none // ==/UserScript== function getAnchor(element) { while (element && element.nodeName != "A") element = element.parentNode; return element; } document.addEventListener("click", function(e) { var hosts = [ "tv.yandex.ru" , "domain1.abc" , "domain2.def" ]; var anchor = getAnchor(e.target); if (hosts.indexOf(anchor.hostname) >= 0) anchor.target = "_blank"; });
Кстати, "domain1.abc" и "domain2.def" здесь только как пример добавления других сайтов.
Отсутствует