xrun1
Я тут пока осваиваюсь, непонятно в какой файл и какой код добавлять. Только дошло, что надо редактировать в CustomStylesScripts.jsm, и еще один файл. Смотрел по примеру. До этого делал иначе. Возможно дело в этом. А у вас в special_widgets есть "разделитель" и "свободное пространство"? У меня лишь "растягивающийся интервал". Других почему-то нет.
Отредактировано b0ttle (18-03-2023 20:41:04)
Отсутствует
А у вас в special_widgets есть "разделитель" и "свободное пространство"? У меня лишь "растягивающийся интервал". Других почему-то нет.
Что бы появились в файле CustomStylesScripts.jsm включите пункты;
// { path: "special_widget.css", type: "USER_SHEET", sheet(f) { preloadSheet(this, f); }, }, // <-- Special Widgets
// { path: "special_widgets.js", ucfobj: true, }, // <-- Special Widgets
и в настройках user_chrome_files эти настройки;
Стили -> Для докум. всех окон [ChromeOnly]
Скрипты -> Для докум. окна браузера [ChromeOnly]
и после этого перезапустить браузер с очисткой кэша запуска.
Win7
Отсутствует
Спасибо за стиль с доп.панелями, помогло. С интервалами тоже решилось.
Не понимаю, что значит по событию. Так же, для всех или одного окна, и [ChromeOnly]. Пример есть, но все равно запутался. Раньше я ложил код, получается в load. А в примере, код обычно в другое ложат. И вот тут и путаница) Можно немного подробнее, если не затруднит.
Добавлено 18-03-2023 20:39:02
kokoss
Нашел ссылку на ваш пример. У вас пустой custom_script.js. В примере dobrov-а, там какой-то код. Если добавлять через CustomStyleScripts.jsm, то получается эти файлы не сильно важны? Для чего тогда они?
Отредактировано b0ttle (18-03-2023 20:41:18)
Отсутствует
В расширении Async Run Applications 2021.9.7 правка parent.js тоже сработала.
Запуск приложений с аргументом %OpenCurrentURI открывал текущую страницу, а из clipboard с %OpenClipboardURI нет.
Dumby ещё раз спасибо.
Отсутствует
Dumby
Я задавал вопрос в теме по CSS, но судя по тому, что там я ответа не получил, скорее всего стилями этого сделать не получится.
Суть вот в чём.
Сейчас новая кнопка "Расширения" прибита намертво.
Возможно ли с помощью скрипта как-то её открепить, чтобы была возможность переместить на любую другую панель?
P.S. Если на любую другую панель очень сложно, то лично меня устроил бы перенос этой кнопки на "Дополнительную панель" из UCF.
«The Truth Is Out There»
Отсутствует
Возможно ли с помощью скрипта как-то её открепить, чтобы была возможность переместить на любую другую панель?
Не располагаю сейчас временем задуматься.
Может так сойдёт, надеюсь панель не колапснутая.
custom_script_win.js, "DOMContentLoaded" (не "load").
(async id => { if (!Services.prefs.getStringPref("browser.uiCustomization.state").includes(`"${id}"`)) await delayedStartupPromise; var btn = document.getElementById(id); btn.setAttribute("removable", true); document.getElementById("nav-bar-customization-target").append(btn); })("unified-extensions-button");
Отредактировано Dumby (20-03-2023 09:18:51)
Отсутствует
Dumby
Супер! Огромное спасибо!
«The Truth Is Out There»
Отсутствует
Можно ли сделать код, который бы открывал ссылки правым кликом? Может есть у кого?
И еще. Кто знает, что делает menubarVisibilityChance.js. Может он не работает?
Отредактировано b0ttle (21-03-2023 00:28:03)
Отсутствует
b0ttle
А расширение не устроит? https://addons.mozilla.org/ru/firefox/a … ght-links/
Отсутствует
xrun1
Он у меня как раз стоит, думал может попроще сделать. Так как пользуюсь лишь этим кликом. По идее, не так важно. Просто хотелка)
А за что отвечают файлы из примера в шапке, не знайте? Один связан с каким-то поиском, другой не ясно. Так и не разобрался.
Отредактировано b0ttle (21-03-2023 12:09:02)
Отсутствует
код, который делает кнопку съемной
Не совсем так.
Вопрос был в том, чтобы переместить её в хорошее место.
Она, вроде как, задумана использоваться не только
чтобы в неё мышью тыкать, но ещё и как анкор для каких-то нотификаций.
Поэтому её и скрывают не через display: none.
Ну, это всего лишь я так предполагаю.
Вобщем, не нашёл сходу подходящего топика, поэтому "chrome-document-interactive".
// (async topic => { var id = "unified-extensions-button", qid = `"${id}"`; var obs = async doc => { var btn = doc.getElementById(id); if (!btn) return; if (!Services.prefs.getStringPref("browser.uiCustomization.state").includes(qid)) await doc.ownerGlobal.delayedStartupPromise; btn.setAttribute("removable", true); doc.getElementById("nav-bar-customization-target").append(btn); } Services.obs.addObserver(obs, topic); Services.obs.addObserver(function quit(s, t) { Services.obs.removeObserver(quit, t); Services.obs.removeObserver(obs, topic); }, "quit-application-granted"); })("chrome-document-interactive");
Отсутствует
Dumby, а если бы речь шла только о том, чтобы сделать кнопку съемной, например alltabs-button, то в только что приведенном вами коде не достаточно было бы просто сменить id на "alltabs-button" и присутствует что-то лишнее? Если мне не изменяет память, то раньше эта кнопка была съемной, а по какой причине эту возможность убрали, мне не ясно
Отредактировано 6e73epo (21-03-2023 15:14:01)
Отсутствует
например alltabs-button, то в только что приведенном вами коде не достаточно было бы просто сменить id на "alltabs-button" и присутствует что-то лишнее?
Ну, почему не достаточно, достаточно.
И да, лишнее, для alltabs-button, определённо, присутствует.
Собственно даже всё, кроме установки атибута "removable".
Иначе говоря
var obs = doc => doc.getElementById("alltabs-button")?.setAttribute("removable", true);
Отсутствует
Иначе говоря
var obs = doc => doc.getElementById("alltabs-button")?.setAttribute("removable", true);
А как использовать, (async () => { ... })(); , или типа того, нужен?
Отсутствует
Dumby
Для ucf используется
для unified-extensions-button
А для alltabs-button этого не надо? Просто строку данную выше вписываем?
Отсутствует
_zt
Что-то понятнее не стало.
Была просьба перерисовать код для unified-extensions-button
с custom_script_win.js под config.js
Поэтому обсёрвер, и даже async так же используется
по прямому назначению, поскольку внутри есть await
Затем, вдогонку, вопрос, как бы это могло выглядеть уже для alltabs-button
Соответственно, даден ответ, что чуть попроще
(async topic => { var obs = doc => doc.getElementById("alltabs-button")?.setAttribute("removable", true); Services.obs.addObserver(obs, topic); Services.obs.addObserver(function quit(s, t) { Services.obs.removeObserver(quit, t); Services.obs.removeObserver(obs, topic); }, "quit-application-granted"); })("chrome-document-interactive");
Отсутствует
Dumby
В 112 такой код отказался работать:
try { (this.ucf_DblclickTabUpPage = { init(that) { gBrowser.tabContainer.addEventListener("dblclick", this); }, handleEvent(e) { if ( e.button == 0 && e.target.matches("tab :scope:not(.tab-close-button):not(.tab-icon-sound), tab") ) { e.preventDefault(); var vert = `javascript:(function(d,scrT){scrT=d.documentElement.scrollTop||d.body.scrollTop;if(scrT>window.innerHeight){localStorage['bmk_'+d.location.href]=scrT;scrollTo(0,0)}else{scrollTo(0,localStorage['bmk_'+d.location.href]||0)}})(document)`; gBrowser.loadURI(vert, { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal() }); } }, }).init(this); } catch(e) {}
«The Truth Is Out There»
Отсутствует
'uri' member of CancelContentJSOptions is not an object.
Это Bug 1810141 - Loading URIs should be done with URI objects by default, rather than strings, to help avoid unnecessary parsing / fixup / allocations
То есть, либо
gBrowser.loadURI(Services.io.newURI(vert),
либо
gBrowser.fixupAndLoadURIString(vert,
Отсутствует