Andrey_Krropotkin
Это всё понятно, но у меня почему-то когда спрашивал, в Notepad++ поиск не нашёл строки, которые надо заменять. Наверное не правильно скопировал. Сейчас всё нашлось и работает. Спасибо.
Отсутствует
Доброго времени суток. Есть семанка 2.49.х (1 и 5)
custom buttons стоит последний. И вроде как работает, во всех меню есть его строка, при переходе из адресной строки по скопированному коду для custom buttons все октывается как надо и... на этом усё... При клике на саму кнопку ничего не происходит. Подскажите плиз в какцю сторону копать... Ну и хорошо бы какуюю-нибудь тестовую. строчку инициализации, которая бы гарантировано работала бы в семанке?.
Отредактировано skuwakin (03-06-2020 17:34:51)
Отсутствует
Уважаемые форумчане, прошу помощи. Можно ли вынести функцию расширения SingleFile "Сохранить выделенное" в отдельную кнопку? Команда в середине контекстного подменю, пользуюсь этой командой едва ли не чаще, чем обычным сохранением страницы, горячей клавиши нет, очень неудобно, ткнёшь не туда, и куча ненужного начинает открываться.
Пробовал поковырять сам, DI выдаёт такое
Разархивировал само расширение, вроде в extension\ui\content в content-ui-main.js нужные скрипты лежат, но вытащить в кнопку не получилось, не хватает понимания того, что делаю.
Решаема ли задача или я невозможного хочу?
Отсутствует
хорошо бы какуюю-нибудь тестовую. строчку инициализации, которая бы гарантировано работала бы в семанке
alert(2+2);
kazarin
var code = `(async win => { var cl = obj => Components.utils.cloneInto(obj, win); var tabs = await win.browser.tabs.query(cl({active: true, currentWindow: true})); win.singlefile.extension.core.bg.business.saveTabs(tabs, cl({selected: true})); })(content.wrappedJSObject)`; Cu.import("resource://gre/modules/Extension.jsm", {}).GlobalManager.extensionMap .get("{531906d3-e22f-4a6c-a102-8057b88a1a63}")._backgroundPageFrameLoader .messageManager.loadFrameScript("data:," + encodeURIComponent(code), false);
Отсутствует
Dumby
Нужно править сам cookiesPermissions.js
cookiesPermissions.js ? И где он ? С паролями тоже напарился конкретно LoginHelper.jsm в модулях рихтовать пришлось и privacy.js - тоже.
Отсутствует
alert(2+2);
Спасибо за ответ! Только грусто и абыдно за мурзилку... Нифига в ней не робит... Пробовал вообще на голой, только что поставленной 2.49.5 и нифига... Кнопка нажимается и усё... На старых кнопках даже хинты показываются, а действия не запускаются... Самое невероятное, что в аддонс манагер тоже все красиво - есть отдельная категория custom buttons с кнопками, которые абсолютно нормально удаляются там. Отсюда вопрос, а оно вообще на 2.49.х работает? Уж больно ценное приложение и такой жестий обломс...
Отсутствует
skuwakin
Попробуйте эту версию: https://forum.mozilla-russia.org/viewto … 96#p755496 или эту: https://forum.mozilla-russia.org/viewto … 43#p744943
Отредактировано kokoss (04-06-2020 21:43:27)
Win7
Отсутствует
Можно в кнопке "Яркость" заменить (добавить) иконку с цифрами (процентами), соответствующим уровням?
/*Initialization Code*/// Настройка функций кликов мыши для кнопки .......... this.onclick =e=> { // действие при клике ЛКМ .... if ( e.button == 0 ) setStyleForPages( cbu.setPrefs(s, !cbu.getPrefs(s)) ) // действие при клике СКМ .... if ( e.button == 1 ) gShowPopup(this); // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft") } }; // Колёсиком мыши на кнопке менять яркость в настройках и стиле .......... this.onwheel =e=>{ var i = cbu.getPrefs(l), i = e.deltaY < 0 ? i + step : i - step; if ( 0 <= i && i <= 99 ) cbu.setPrefs(l, i); setStyleForPages( cbu.setPrefs(s, true) ); }; // Исправить проблему с position для изображений .......... addEventListener("mouseover", e=>{ if ( e.button || e.target.localName !== 'img' ) return; var img = e.target, node = img; if ( getPosition(img) == 'absolute') { img.setAttribute('currentPosition', 'true'); return; }; while( node = node.parentNode ) { if ( getPosition(node) == 'relative' ) break; if ( getPosition(node) == 'absolute') { img.setAttribute('parentPosition', 'true'); break; }; }; function getPosition(node) { try { return getComputedStyle(node, '').position } catch(e) { return "" } }; ; }, false, gBrowser); // Получить настройки кнопки и css код из вкладки Справка .......... var step = 2, s = "CB.darken", help = self.getAttribute('Help'), l = "CB.darken.level"; // Создать настройки кнопки в about:config если они не существует .......... cbu.isPref(l, 28); cbu.isPref(s, false); // Установить нужную иконку кнопки при старте браузера или при изменениях настроек кнопки .......... function toggleImage() { self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"). src = !cbu.getPrefs(s) ? self.image : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wBSUlIAPT09ADo6OgI4ODgFNzc3IjY2NjZeXl62WVlZvI6Ojt+QkJDpmZmZ+VNTU7QvLy8NQEBAAE9PTwD///8ATk5OAVNTU1iIiIjGn5+f1Kenp/Cbm5v42tra/9DQ0P/R0dH/6Ojo/+bm5v+zs7P/bm5uz1xcXHBSUlIl////AJWVlb7i4uL/6enp//Hx8f/w8PD/7u7u//f39//t7e3/3d3d//Dw8P/x8fH/7+/v/8fHx/+6urr/cHBwc////wCXl5d719fX7erq6v/m5ub/4ODg//r6+v/19fX/yMjI/7u7u//29vb/5ubm/9zc3P+zs7PmeHh4VFpaWgn///8Ag4ODAISEhBilpaV7+fn5//Hx8f/29vb/9/f3/9/f3//Gxsb/7u7u/9zc3P+ioqL/cHBw7EhISItMTEwP////AIaGhgCHh4cAfn5+FaWlpbTU1NT/3t7e/+zs7P/39/f/z8/P/7Kysv+enp7/o6Oj/5+fn/9OTk6OSEhIIP///wCIiIgAiIiIAHZ2dgJTU1NPiIiI/52dnf+bm5v/qKio/5CQkP+JiYn/mJiY/6+vr/+tra3/Xl5ez0dHR0T///8Ae3t7AIWFhQB5eXkeY2Njio2NjfisrKz/nJyc/5OTk/+VlZX/oKCg/6ysrP+1tbX/qKio/11dXb5HR0cY////AG5ubgBycnIAeHh4AGRkZC99fX34s7Oz/7Ozs/+vr6//r6+v/7Kysv+zs7P/rq6u/5eXl/9VVVV4RkZGM////wA/Pz8Aa2trAHh4eAN2dnY/ZmZmbpeXl/+xsbH/srKy/7Gxsf+vr6//q6ur/6mpqf9ubm7iTExMTEtLSwD///8AKioqAHR0dAB4eHgAdHR0AHFxcUhubm6kj4+P8KioqP+tra3/rKys/5+fn/hzc3PtVFRULExMTB9LS0sC////ABQUFAAaGhoAeHh4AHR0dAB1dXUPbGxsAGpqapBxcXF5eHh40HJycp5hYWGFVFRUMVNTUylMTEwAS0tLAP///wAAAAAAAAAAAHh4eAB0dHQAdHR0AG9vbwZvb28OaGhoBGZmZkVgYGAAXV1dL1dXVwBTU1MATExMAEtLSwD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AADgAwAAgAAAAIAAAACAAAAAwAAAAOAAAADgAAAA4AAAAPAAAADgAQAA+AAAAPoDAAD8LwAA//8AAA=="; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage)); // Переключить css стиль для страницы .......... function setStyleForPages() { var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var css = help.replace(/value/g, cbu.getPrefs(l)/100 ); var uri = makeURI("data:text/css," + encodeURIComponent(css)); try { sss.unregisterSheet(previousUri || uri, 0) } catch(e) {}; previousUri = uri; cbu.getPrefs(s) && sss.loadAndRegisterSheet(uri, 0); }; cbu.getPrefs(s) && setStyleForPages(); // Подсказка для кнопки .......... this.tooltipText = "Л: Переключить яркость страниц \nС: CB Меню \nП: Открыть меню кнопки Save \nКолёсиком мыши на кнопке можно менять яркость страниц";
Отредактировано manuk (05-06-2020 12:03:27)
Отсутствует
Какой код на нажатие здесь?
"Восстановить набор поисковых...."
(async (observers, ind) => { observers = Array.from(observers, obs => obs.wrappedJSObject).filter( obs => obs && "_syncFromShowSearchSuggestionsFirstPref" in obs ); if (observers.length) for(var obs of observers) obs.onRestoreDefaults(); else { for(var engine of await Services.search.getDefaultEngines()) engine.hidden = false, await Services.search.moveEngine(engine, ind++); Services.search.resetToOriginalDefaultEngine(); } })(Services.obs.enumerateObservers("browser-search-engine-modified"), 0);
заменить
function toggleImage() { var [img, lab] = document.getAnonymousNodes(self); var darken = img.hidden = Services.prefs.getBoolPref(s); lab.style.display = darken ? "-moz-box" : "none"; darken && lab.setAttribute("value", ("0" + Services.prefs.getIntPref(l)).slice(-2)); }
Отредактировано Dumby (05-06-2020 14:41:16)
Отсутствует
Dumby
Это код замечательный в /*Initialization Code*/ не будет тормозить? Может в рестарт ?
Последнее...В 77 пароли заделал от 76 . Короче, passwordmgr - passwordManager.js и т.д Но в passwordManager.js это не работает и иконки 32 так и остаются
return PlacesUtils.urlWithSizeRef(window, "page-icon:" + signon.origin, 16);
Кстати, я могу теперь в однопроцессе смотреть сертификаты и куки !
Отредактировано solombala (05-06-2020 16:00:13)
Отсутствует
... Кстати, я могу теперь в однопроцессе смотреть сертификаты и куки !
Отредактировано solombala (Сегодня 16:00:13)
уже захотелось 77 попробовать ...
Win 10х64
Отсутствует
skuwakin
Попробуйте эту версию: https://forum.mozilla-russia.org/viewto … 96#p755496 или эту: https://forum.mozilla-russia.org/viewto … 43#p744943
Огромное спасибо! Подписанный из первой ссылки заработал!
Отсутствует
в /*Initialization Code*/ не будет тормозить? Может в рестарт ?
Зависит от задачи, описание которой не предоставлено.
(действительно, зачем объяснять свой замысел, правда же?)
Код исходит из предположения, что будет использоваться по клику.
Короче, passwordmgr - passwordManager.js и т.д
Что «и т.д»? chrome://global/skin/passwordmgr.css обратно на место положил?
А то, судя по скрину, что-то не похоже.
ЧЯДНТ?
Нужен URL получившейся кнопки, я же не телепат.
Отсутствует
Dumby
Ясен пень положил. И еще есть папка passwordmgr , в ней passwordManager.xhtml и passwordManager.js
В этом js есть return PlacesUtils.urlWithSizeRef(window, "page-icon:" + signon.origin, 16); Вот только иконки не всегда 16 , прет и 32 и 48 ...
Пришлось так: return PlacesUtils.urlWithSizeRef(window, "page-icon:" ); Теперь просто из скина дефолтная иконка появляется...В 76 норм , там четко иконки из закладок(16х16)
Отсутствует
Кстати, я могу теперь в однопроцессе смотреть сертификаты и куки !
Расскажи, как ты это сделал?
«The Truth Is Out There»
Отсутствует
Отсутствует
solombala, спасибо.
«The Truth Is Out There»
Отсутствует
Вот только иконки не всегда 16 , прет и 32 и 48
16 может просто не быть, это же не значит, что она должна отображаться не 16.
Странно, если и во вкладке с адресом chrome://global/skin/passwordmgr.css
css-код виден, то тогда не знаю.
Может попробуй в userChrome.css добавить
@-moz-document url(chrome://passwordmgr/content/passwordManager.xhtml) { treechildren::-moz-tree-image(siteCol) { width: 16px !important; height: 16px !important; margin-inline-end: 5px !important; } }
Отсутствует
Dumby
Код сработал...Потом полез в скин , а passwordmgr.css был выкинут ...От я будала...
Опять эта шняга в about:addons .... aboutaddons.js - все перерыл вроде это повтыкал e.preventDefault(); , один черт иногда вылазит..
Вроде сделал , не выскакивает...А, что в 77 в адресе зависает #identity-icon-label - аддоны, в смысле ...Вкладки закрыл, а фигня торчит Firefox/addons
Да, эти три точки в кнопках (.more-options-button) вверх поднять?
Отредактировано solombala (06-06-2020 12:49:04)
Отсутствует
Имеется пробная кнопка:
----------------------------------------------------------------------
var loader = Components.classes[ "@mozilla.org/moz/jssubscript-loader;1" ].getService( Components.interfaces.mozIJSSubScriptLoader );
loader.loadSubScript("file:///D:/temp/list.js");
var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
var image = "no"
var title = foo();
var notification = array.join("\r\n");
alertsService.showAlertNotification(image, title, notification);
----------------------------------------------------------------------
использующая импорт внешнего js-кода
list.js (кодировка ср1251):
----------------------------------------
var EXPORTED_SYMBOLS = ["foo", "array"];
function foo() { return "Привет мир"; }
array = ["Знание сила","Вместе победим"]
----------------------------------------
При нажатии выдает символы Window-1252 (ISO-8859-1)
как можно добиться корректного (Window-1251) вывода?
Отредактировано ruslaw (07-06-2020 23:24:40)
Отсутствует