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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№12606-11-2023 10:37:52

fuchsfan
Участник
 
Группа: Members
Зарегистрирован: 07-08-2023
Сообщений: 130
UA: Firefox 119.0

Re: userChrome.js

6e73epo пишет

Вопрос решен. Одной строкой прописал и заработало

Куда именно добавить, после какой строки?

Отсутствует

 

№12706-11-2023 11:30:24

6e73epo
Участник
 
Группа: Members
Зарегистрирован: 06-05-2022
Сообщений: 207
UA: Firefox 119.0

Re: userChrome.js

fuchsfan, "memoryMinimizationButton.doMinimize()" заменил на
"Cc['@mozilla.org/memory-reporter-manager;1'].getService(Ci.nsIMemoryReporterManager).minimizeMemoryUsage(() => {})"
и не знаю, есть ли негативные последствия сего действия

Отсутствует

 

№12807-11-2023 11:33:18

Злой Буратино
Участник
 
Группа: Members
Зарегистрирован: 09-12-2011
Сообщений: 98
UA: Firefox 115.0

Re: userChrome.js

Dumby

Уж не знаю что за Цент,а для лисы как-то так

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

Выделить код

Код:

(async (id, url) => {
	if (location != url) return;
	var menuitem = document.createXULElement("menuitem");
	document.getElementById(id).after(menuitem);
	var hidden = () => !nsContextMenu.contentData.context.linkTextStr;	
	menuitem.hidden = true;
	menuitem.render = () => {
		if (hidden()) return;
		menuitem.hidden = false;
		menuitem.id = id + "text";
		menuitem.label = "Скопировать текст ссылки";
		menuitem.setAttribute("oncommand", "navigator.clipboard.writeText(gContextMenu.linkTextStr);");
		delete menuitem.render;
		menuitem.render();
		menuitem.render = () => menuitem.hidden = hidden();
	}
})("context-copylink", "chrome://browser/content/browser.xhtml");

Возможно ли как-то переделать код для работы вот с этим загрузчиком?

Отсутствует

 

№12907-11-2023 13:05:40

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 78.0

Re: userChrome.js

Злой Буратино пишет

Возможно ли как-то переделать код для работы вот с этим загрузчиком?

Ух ты, как там всего навёрнуто!
Но, ничего, создал папку utils, а в ней «three files» :D руками.
И, рядом, папку JS, в которую положил test.uc.js с приведённым кодом.


И пункт контекстного меню страниц «Скопировать текст ссылки»
на ссылках появился, и копирует.
Таким образом, на первый взгляд, никакая переделка не требуется.

Отсутствует

 

№13007-11-2023 14:30:06

Dobrov
Участник
 
Группа: Members
Зарегистрирован: 04-10-2011
Сообщений: 475
UA: Firefox 118.0

Re: userChrome.js

Dumby пишет

Ух ты, как там всего навёрнуто!

В описании так: начиная с версии «0.8» fx-autoconfig несовместим с Firefox ESR 102
Непонятно, с какой минимальной версии Firefox этот загрузчик скриптов работает ?

Отсутствует

 

№13107-11-2023 14:39:06

Злой Буратино
Участник
 
Группа: Members
Зарегистрирован: 09-12-2011
Сообщений: 98
UA: Firefox 115.0

Re: userChrome.js

Странно, но не работает.
Либо неправильно понял... У меня в папке utils лежат файлы chrome.manifest, boot.sys.mjs, fs.sys.mjs, utils.sys.mjs. В папке JS (не подпапка, а папка этого же уровня, что и utils) лежат скрипты *.uc.js и, собственно, ваш скрипт. Все работают, ваш не хочет :D
Fx 115.0.4 ESR
ЧЯДНТ?

Отсутствует

 

№13207-11-2023 16:43:19

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 78.0

Re: userChrome.js

Dobrov пишет

В описании так: начиная с версии «0.8» fx-autoconfig несовместим с Firefox ESR 102

Ну правильно, там вызов метода, который импортирует ES-модуль,
а это специально выкинули из 102, чтоб не повадно было.

Непонятно, с какой минимальной версии Firefox этот загрузчик скриптов работает ?

Мне-то откуда ведомо, я его сегодня первый раз попробовал развернуть.
Рыться в кодах в поисках самого слабого звена — желания нет.
Заниматься бинарным поиском по-факту от 103 до 121 — тоже неохота.


Злой Буратино пишет

ЧЯДНТ?

Не знаю, и не могу знать.
Можно высказать странное предположение, что скрипт не в кодировке UTF-8.
Есть ли в консоли что-то типа «Caused by: SyntaxError: bad trailing UTF-8 byte 0xCA doesn't match the pattern 0b10xxxxxx»?


Нет, ну не обязательно чтобы только именно в UTF-8,
можно и в ANSI, но тогда и вместо "Скопировать текст ссылки"
придётся писать что-нибудь такое:
"\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0442\u0435\u043A\u0441\u0442 \u0441\u0441\u044B\u043B\u043A\u0438"

Отсутствует

 

№13307-11-2023 17:07:33

Злой Буратино
Участник
 
Группа: Members
Зарегистрирован: 09-12-2011
Сообщений: 98
UA: Firefox 115.0

Re: userChrome.js

Dumby пишет

Можно высказать странное предположение, что скрипт не в кодировке UTF-8.

Бинго! :)
Спасибо, всё работает.

Отсутствует

 

№13407-11-2023 22:54:38

6e73epo
Участник
 
Группа: Members
Зарегистрирован: 06-05-2022
Сообщений: 207
UA: Firefox 119.0

Re: userChrome.js

Dumby, попробовал сохранить страницу с поисковыми результатами яндекса, но в оффлайн режиме скрипты статистики не работают. Да и не беда. Я все равно такие скрипты не разрешаю, а без них победить прослушку можной одной строкой из консоли или букмарклета.
Однако, решил автоматизировать, но через скрипт, загружаемый из UserChrome.js, получить доступ к странице яндекса, наверное, не реально, да и ставить одно из обезьяних расширений из-за одного скрипта тоже не хотелось.
Добавил к скрипту манифест, упаковал в xpi, установил. Доступ к функциям страницы был получен малой кровью (wrappedJSObject). И все работает как надо

Отредактировано 6e73epo (07-11-2023 22:55:46)

Отсутствует

 

№13508-11-2023 00:47:12

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 306
UA: Google 2.1

Re: userChrome.js

Dumby пишет

Ух ты, как там всего навёрнуто!

:beer: давно смотрю как загрузчик от ксяо раскорячило, ой продвинул MrOtherGuy


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№13608-11-2023 08:49:00

rubel
Участник
 
Группа: Members
Откуда: г.Самара
Зарегистрирован: 10-05-2005
Сообщений: 570
UA: Firefox 115.0

Re: userChrome.js

Farby
Посмотрел Ваш измененный пост и попробовал заменить в своем config.js на ваш новый код.
SingleHTML.jsm перестал работать как надо.

Отсутствует

 

№13709-11-2023 00:02:02

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 306
UA: Google 2.1

Re: userChrome.js

rubel пишет

Посмотрел Ваш

Так Вам

Dumby пишет

Перенёс ссылку из ucfBox'а в конфигский сандбокс, и теперь, вроде, не слетает.
Вобщем, попробуй заменить sb[Symbol()] на globalThis[Symbol()]

Уже давно расписал что надо сделать если у Вас не работает...


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№13817-12-2023 12:54:38

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

Re: userChrome.js

Здравствуйте.
На некоторых сайтах при закрытии страницы всплывает сообщение "Уйти со страницы" которое не позволяет закрыть вкладку не нажав соответствующую кнопку в предупреждении.

Например здесь: https://www.zbrushcentral.com/t/pendant/434810

Как убрать это предупреждение чтобы не появлялось вновь?

Отсутствует

 

№13917-12-2023 14:15:52

AlAvis
Участник
 
Группа: Members
Зарегистрирован: 16-06-2014
Сообщений: 603
UA: Firefox 121.0

Re: userChrome.js

leex
В about:config - dom.disable_beforeunload = true
userChrome.js тут не причём .

Отсутствует

 

№14017-12-2023 16:02:59

3.0.1
Участник
 
Группа: Members
Зарегистрирован: 08-06-2023
Сообщений: 136
UA: Firefox 120.0

Re: userChrome.js

А можно закрыть вкладку повторным нажатием, но не окно.


Addons. Дождь-Экстаза. Человеки исполнение чужих желаний реально мой конёк

Отсутствует

 

№14118-12-2023 02:15:30

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

Re: userChrome.js

AlAvis пишет

leex
В about:config - dom.disable_beforeunload = true
userChrome.js тут не причём .


Благодарю!
Сработало.

Отсутствует

 

№14222-03-2024 21:59:06

Nich
Участник
 
Группа: Members
Зарегистрирован: 22-03-2024
Сообщений: 2
UA: Firefox 124.0

Re: userChrome.js

Народ привет.
Не совсем по Firefox, как перенести этот js скрипт, чтобы работал на Vivaldi?

Надо, чтобы в Vivaldi, можно было закрывать вкладку, если кликать по ней правым кликом мышки
Vivaldi, как и Firefox, тоже поддерживает js скрипты.

Выделить код

Код:

/* Firefox userChrome script
 * Right-clicking on tab button to close tab
 * Shift + right-clicking to popup menu
 * Tested on Firefox 91
 * Author: garywill (https://garywill.github.io)
 */

// ==UserScript==
// @include         main
// ==/UserScript==

console.log("right_click_close_tab.js");

(() => {

    gBrowser.tabContainer.addEventListener("TabOpen", eventTabAdded, false);
    function eventTabAdded(event) {
        var tab = event.target;
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    }
    
    
    function onTabEvent(event) {
        //console.log(event.type);
        if (event.button != 2 || event.shiftKey  ) 
            return;
            
        event.preventDefault();
        event.stopPropagation();
        
        if (event.type == 'click')
            gBrowser.removeTab(this, {animate: true});
    }
    
    gBrowser.tabContainer.querySelectorAll('tab').forEach( function(tab, index) {
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    });
    
})();

Отсутствует

 

№14322-03-2024 22:59:57

Farby
Участник
 
Группа: Members
Зарегистрирован: 21-11-2012
Сообщений: 306
UA: Google 2.1

Re: userChrome.js

Nich пишет

Не совсем по Firefox, как перенести этот js скрипт, чтобы работал на Vivaldi?

К сожалению для вас спешу огорчить, это низкоуровневый скрипт, который исполнятся на уровне ядра [firefox]

gBrowser

Выделить код

Код:

// ==UserScript==
// @include         main
// ==/UserScript==


директива означает что, этот скрипт загружаться раньше чем вы увидели что [firefox] загрузился, что касается chromium подобных сущностей, рекомендую обратить внимание на приставку Version.dll, попробуйте уговорить умельцев создать загрузчик на уровне ядра Chromium

О кстати

https://github.com/Bush2021/chrome_plus
Features

    Double-click to close tab.
    Right-click to close tab. (Hold Shift to show the original menu.)
    Preserve the last tab (prevents the browser from closing when the last tab is closed; clicking the close button will not work.)
    Use the mouse wheel to switch tabs when hovering over the tab bar.
    Use the mouse wheel to switch tabs when holding the right mouse button.
    Create new tab to opens the contents entered in address bar. (Can be configured to open in foreground or background.)
    Create new tab to opens bookmarks. (Can be configured to open in foreground or background.)
    Disable the above two features when the current tab is a new tab.
    Customize hotkeys to quickly hide the browser window (boss key).
    Customize hotkeys to translate web page.
    Portable design: the program is placed in the App directory, and data is stored in the Data directory (incompatible with the original data; you can reinstall the system or change computers without losing data).
    Allow configuration of features using ini files.
    Allow custom Chromium startup parameters.


Вообще-то там это заявлено из коробки

Nich пишет

Vivaldi, как и Firefox, тоже поддерживает js скрипты.

когда увидите фразу

Firefox userChrome script

сразу проходите мимо, это не про Chromium Clones...

Отредактировано Farby (22-03-2024 23:20:01)


Жизнь иногда такое выкидывает, что хочется подобрать...

Отсутствует

 

№14423-03-2024 05:16:05

brake
Участник
 
Группа: Members
Зарегистрирован: 05-05-2022
Сообщений: 14
UA: Firefox 124.0

Re: userChrome.js

Nich пишет

Народ привет.
Не совсем по Firefox, как перенести этот js скрипт, чтобы работал на Vivaldi?

Надо, чтобы в Vivaldi, можно было закрывать вкладку, если кликать по ней правым кликом мышки
Vivaldi, как и Firefox, тоже поддерживает js скрипты.

Выделить код

Код:

/* Firefox userChrome script
 * Right-clicking on tab button to close tab
 * Shift + right-clicking to popup menu
 * Tested on Firefox 91
 * Author: garywill (https://garywill.github.io)
 */

// ==UserScript==
// @include         main
// ==/UserScript==

console.log("right_click_close_tab.js");

(() => {

    gBrowser.tabContainer.addEventListener("TabOpen", eventTabAdded, false);
    function eventTabAdded(event) {
        var tab = event.target;
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    }
    
    
    function onTabEvent(event) {
        //console.log(event.type);
        if (event.button != 2 || event.shiftKey  ) 
            return;
            
        event.preventDefault();
        event.stopPropagation();
        
        if (event.type == 'click')
            gBrowser.removeTab(this, {animate: true});
    }
    
    gBrowser.tabContainer.querySelectorAll('tab').forEach( function(tab, index) {
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    });
    
})();

https://github.com/benzBrake/VivaldiMods/blob/main/chrome/userChromeJS/rightClickTabToClose.ac.js

Отсутствует

 

№14523-03-2024 08:42:40

Nich
Участник
 
Группа: Members
Зарегистрирован: 22-03-2024
Сообщений: 2
UA: Firefox 124.0

Re: userChrome.js

brake пишет
Nich пишет

Народ привет.
Не совсем по Firefox, как перенести этот js скрипт, чтобы работал на Vivaldi?

Надо, чтобы в Vivaldi, можно было закрывать вкладку, если кликать по ней правым кликом мышки
Vivaldi, как и Firefox, тоже поддерживает js скрипты.

Выделить код

Код:

/* Firefox userChrome script
 * Right-clicking on tab button to close tab
 * Shift + right-clicking to popup menu
 * Tested on Firefox 91
 * Author: garywill (https://garywill.github.io)
 */

// ==UserScript==
// @include         main
// ==/UserScript==

console.log("right_click_close_tab.js");

(() => {

    gBrowser.tabContainer.addEventListener("TabOpen", eventTabAdded, false);
    function eventTabAdded(event) {
        var tab = event.target;
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    }
    
    
    function onTabEvent(event) {
        //console.log(event.type);
        if (event.button != 2 || event.shiftKey  ) 
            return;
            
        event.preventDefault();
        event.stopPropagation();
        
        if (event.type == 'click')
            gBrowser.removeTab(this, {animate: true});
    }
    
    gBrowser.tabContainer.querySelectorAll('tab').forEach( function(tab, index) {
        tab.addEventListener('click', onTabEvent);
        tab.addEventListener('contextmenu', onTabEvent);
    });
    
})();

https://github.com/benzBrake/VivaldiMods/blob/main/chrome/userChromeJS/rightClickTabToClose.ac.js


Очень благодарю!

Ещё хотел спросить, вот у меня в Firefox, js скрипт активирует вкладку при наведении на нее, но не работает тогда выбор выделение вкладок, сбивается фокус, може есть какое нибудь решение?

Отсутствует

 

№14630-04-2024 22:55:34

6e73epo
Участник
 
Группа: Members
Зарегистрирован: 06-05-2022
Сообщений: 207
UA: Firefox 124.0

Re: userChrome.js

Этот скрипт работал из config.js пока AboutNewTab.jsm не превратился в AboutNewTab.sys.mjs. Может кому-то не слабо переделать?

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

Выделить код

Код:

try {
  Cu.import("resource:///modules/AboutNewTab.jsm");

  if (AboutNewTab.newTabURL === "about:newtab") AboutNewTab.newTabURL = "about:blank";
} catch(e) {Cu.reportError(e)};

Отсутствует

 

№14701-05-2024 07:24:31

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 78.0

Re: userChrome.js

6e73epo
Эээ...


Cu.import("resource:///modules/AboutNewTab.jsm");
let {AboutNewTab} = ChromeUtils.importESModule("resource:///modules/AboutNewTab.sys.mjs");

Отсутствует

 

№14801-05-2024 09:24:48

6e73epo
Участник
 
Группа: Members
Зарегистрирован: 06-05-2022
Сообщений: 207
UA: Firefox 124.0

Re: userChrome.js

Dumby
Спасибо. Делал также, но вместо ChromeUtils указывал Cu и получал: Cu.importESModule is not a function. Ну и зачем-то  полез искать решение в Cu.getGlobalForObject(Cu)

Отсутствует

 

№14901-05-2024 11:15:11

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 78.0

Re: userChrome.js

6e73epo пишет

вместо ChromeUtils указывал Cu

Cu.import("….jsm") и сейчас работает,
надо было только забрать AboutNewTab с того, что он возвращает.


Код, видимо, был сделан ещё во времена, когда этот метод
устанавливал экстортное добро прямо в глобальный объект.
Но он давно уже этого не делает.


Однако, ChromeUtils.importESModule() — это мейнстрим,
а Cu.import() подлежит удалению, надо полагать в 129.

зачем-то  полез искать решение в Cu.getGlobalForObject(Cu)

ChromeUtils был добавлен в конфигский сандбокс с Firefox 101+
А если бы не был добавлен, то правильно полез,
туда за ним слазить прямо напрашивается.

Отсутствует

 

№15001-05-2024 12:09:40

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2252
UA: Firefox 78.0

Re: userChrome.js

6e73epo

Dumby пишет

Но он давно уже этого не делает.

Похоже, здесь я совравши.
Подорвался проверить, в 125.0.1 запускаю с консоли


console.log(window.ProcessType);
Cu.import("resource://gre/modules/ProcessType.jsm");
console.log(window.ProcessType);


Первый лог — undefined
Второй лог — уже Object {...}


Тогда вернул Cu.import("resource:///modules/AboutNewTab.jsm");
Рестарт, и по Ctrl+T открывается about:blank


Я был уверен, что фичу выпилили, блин, всё надо проверять.
Осталось только непонятно, почему у тебя перестало работать.

Отсутствует

 

Board footer

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