Добавил бы в search-extensions , но seasonvar через http , где бы разрешить?
%Папка_установки%\browser\omni.ja\chrome\browser\content\browser\schemas\chrome_settings_overrides.json
Поиск:
Во всех трёх найденых вхождениях добавляем вопросительный знак после https
Чтобы получилось так:
Отредактировано Dumby (30-01-2021 19:15:57)
Отсутствует
Dumby
Класс , все получилось...Благадао,брате! Хвала! ...В кнопке скриншот - иконку веб-сайта не того (не сохраняет), може мой косяк? Да черт сним, много чего не сохраняет(png и т.д)
Не помню, чья эта кнопка "скиншот" ? Есть продвинуты ,может кто рихтанет ?
Отредактировано solombala (31-01-2021 12:22:16)
Отсутствует
Добрый день, нужна кнопка которая бы копировала HTML содержимое текущей страницы в буфер обмена, при этом всё это должно быть с динамическим содержимым, то есть обычное "Исходный код страницы не подойдёт".
То есть не ctrl + u, а как-то через инспектора (F12)/ Выбрать <html></html> и как-то это скопировать, но вроде очень сложная задача.
Отредактировано melkichelik (31-01-2021 11:20:49)
Отсутствует
Не ставится CustomButtons - ошибка: Firefox заблокировал установку непроверенного расширения.
Ставил на Firefox 78.7 esr и 84.0.2, пробовал разные версии, например custom_buttons-0.0.7.0.0.17-fx-paxmod и bootstrap...
Добавлял config.js из разных инструкций, результат тот же - CustomButtons не ставится.
// try {(nsvo => { var o = Cu.getGlobalForObject(nsvo).Object, {freeze} = o; o.freeze = obj => { if (Components.stack.caller.filename != "resource://gre/modules/AppConstants.jsm") return freeze(obj); obj.MOZ_REQUIRE_SIGNING = false; obj.MOZ_ALLOW_LEGACY_EXTENSIONS = true; return (o.freeze = freeze)(obj); } lockPref("extensions.legacy.enabled", true); lockPref("xpinstall.signatures.required", false); lockPref("extensions.langpacks.signatures.required", false); nsvo = Cu.import("resource://gre/modules/addons/XPIInstall.jsm", {}); var shouldVerify = nsvo.shouldVerifySignedState; nsvo.shouldVerifySignedState = addon => !addon.id && shouldVerify(addon); })(Cu.import("resource://gre/modules/WebRequestCommon.jsm", {}));} catch(ex) {Cu.reportError(ex);} // try {({ ids: [ "custombuttons@xsms.org", ], init(xrt) { if (xrt.inSafeMode) return; Cu.import("resource://gre/modules/addons/XPIProvider.jsm", this); var load = async file => { var rootURI = this.XPIInternal.getURIForResourceInFile(file, ""); Cu.import(rootURI.resolve("startup.jsm"), {}).start(rootURI); } var proto = this.XPIInternal.BootstrapScope.prototype; var func = proto._beforeCallBootstrapMethod; proto._beforeCallBootstrapMethod = () => { proto._beforeCallBootstrapMethod = func; for(var addon of this.XPIInternal.XPIStates.enabledAddons()) this.ids.includes(addon.id) && !addon.loader && load(addon.file); } } }).init(Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULRuntime));} catch(ex) {Cu.reportError(ex);}
Отредактировано Dobrov (01-02-2021 12:06:58)
Отсутствует
Ставил на Firefox Setup 78.7 esr, 84.0.2
Для этих версий антиподписячья (первая) часть приведённого кода старовата.
Не содержит правок для
Firefox 74+ Bug 1524327 - reconsider MOZ_ALLOW_LEGACY_EXTENSIONS behavior
Firefox 77+ Bug 1631933 - Remove or revisit support for data:-URLs in the webRequest API
Ладно, ещё раз
// try {(nsvo => { var o = Cu.getGlobalForObject(nsvo).Object, {freeze} = o, NEW; o.freeze = obj => { if (Components.stack.caller.filename != "resource://gre/modules/AppConstants.jsm") return freeze(obj); obj.MOZ_REQUIRE_SIGNING = false; if ((NEW = "MOZ_ALLOW_ADDON_SIDELOAD" in obj)) lockPref("extensions.experiments.enabled", true); else obj.MOZ_ALLOW_LEGACY_EXTENSIONS = true, lockPref("extensions.legacy.enabled", true); return (o.freeze = freeze)(obj); } lockPref("xpinstall.signatures.required", false); lockPref("extensions.langpacks.signatures.required", false); nsvo = Cu.import("resource://gre/modules/addons/XPIInstall.jsm", {}); var shouldVerify = nsvo.shouldVerifySignedState; nsvo.shouldVerifySignedState = addon => !addon.id && shouldVerify(addon); if (NEW) nsvo.XPIDatabase.isDisabledLegacy = () => false; })( "permitCPOWsInScope" in Cu ? Cu.import("resource://gre/modules/WebRequestCommon.jsm", {}) : Cu );} catch(ex) {Cu.reportError(ex);}
но вроде очень сложная задача
Зависит от задачи. Описание совсем непонятным не назовёшь, тем не менее, весьма скудное.
Вот набросал кой-что, а какая подходящьность — без понятия.
(this.mcopy || (this.mcopy = (() => { var copy = win => win.navigator.clipboard .writeText(new XMLSerializer().serializeToString(win.document)); var func = (copy, id) => copy( Cc["@mozilla.org/appshell/window-mediator;1"] .getService(Ci.nsIWindowMediator) .getOuterWindowWithId(id) ); var url = "data:charset=utf-8," + encodeURIComponent(`(${func})(${copy}, `); return () => { if (gBrowser.selectedBrowser.isRemoteBrowser) { var pmm, {osPid, outerWindowId} = Services.focus .focusedContentBrowsingContext.currentWindowGlobal; for(var ind = 1, num = Services.ppmm.childCount; ind < num; ind++) { var child = Services.ppmm.getChildAt(ind); if (child.osPid == osPid) {pmm = child; break;} } return pmm?.loadProcessScript(url + outerWindowId + ");", false); } var data = {}; Services.focus.getFocusedElementForWindow(content, true, data); copy(data.value); } })()))();
Отсутствует
Dumby
Спасибо за скрипт, как я понимаю это не для https://github.com/VitaliyVstyle/Vitali … rome_files, или я ошибаюсь? Просто до этого все кнопки пытался делать через него обновляя custom_script.js. Буду разбираться.
Изначально думал, что это будет что-то типо, этот код показывает код если в консоли вверсти.
var html = document.documentElement.innerHTML; var ndoc = window.open("",""); ndoc.document.write('<xmp>', html, '</xmp>');
И кнопка должна быть типо.
try {
CustomizableUI.createWidget({
id: "ucf-view-source",
label: "Код",
tooltiptext: "Исходный код страницы",
localized: false,
defaultArea: CustomizableUI.AREA_NAVBAR,
onCreated(btn) {
btn.setAttribute("image", "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16'><g><rect x='0' y='0' width='16' height='16' rx='1' ry='1' style='fill:rgb(0, 120, 173);'/><path style='fill:white;' d='M 9.32,1 5.82,14.8 6.68,15 10.2,1.22 Z M 4.72,3.62 1,8 4.72,12.4 6.25,11.7 3.04,8 6.25,4.25 Z M 11.3,3.62 9.75,4.25 12.9,8 9.75,11.7 11.3,12.4 15,8 Z'/></g></svg>");
},
onCommand(e) {
var html = document.documentElement.innerHTML;
var win = e.view;
win.document.write('<xmp>', html, '</xmp>');
}
});
} catch(e) {}
Но видимо всё сложнее...
Отредактировано melkichelik (01-02-2021 16:30:10)
Отсутствует
как я понимаю это не для
Ага, зашёл в тему конкретного расширения,
а о том, что код нужен для ucf ни словом не обмолвился.
Тут и понимать нечего.
И кнопка должна быть типо.
Ну, можно попробовать какой-нибудь микс составить, такого же статуса подходящности.
try {CustomizableUI.createWidget({ id: "ucf-view-source", label: "Код", tooltiptext: "Serialized document", localized: false, defaultArea: CustomizableUI.AREA_NAVBAR, onCreated(btn) { btn.creator = this; btn.setAttribute("oncommand", "creator.start(event)"); btn.setAttribute("image", "data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16'><g><rect x='0' y='0' width='16' height='16' rx='1' ry='1' style='fill:rgb(0, 120, 173);'/><path style='fill:white;' d='M 9.32,1 5.82,14.8 6.68,15 10.2,1.22 Z M 4.72,3.62 1,8 4.72,12.4 6.25,11.7 3.04,8 6.25,4.25 Z M 11.3,3.62 9.75,4.25 12.9,8 9.75,11.7 11.3,12.4 15,8 Z'/></g></svg>"); }, observe(s, topic) { Services.ppmm.removeMessageListener(this.msgName, this); Services.obs.removeObserver(this, topic); }, addTab(win, src, type) { var url = `view-source:data:${type};charset=utf-8,${encodeURIComponent(src)}`; var gb = win.gBrowser, pos = gb.selectedTab._tPos; gb.moveTabTo(gb.selectedTab = gb.addTrustedTab(url), pos + 1); }, receiveMessage(msg) { this.addTab(Services.wm.getMostRecentWindow("navigator:browser"), ...msg.data); }, start(e) { Services.ppmm.addMessageListener(this.msgName = "UCF:VS:SerializedDocArrived", this); Services.obs.addObserver(this, "quit-application-granted", false); var func = (serialize, id) => { var win = Cc["@mozilla.org/appshell/window-mediator;1"] .getService(Ci.nsIWindowMediator).getOuterWindowWithId(id); win && sendAsyncMessage("NAME", serialize(win)); } var serialize = (win, doc = win.document) => [ new win.XMLSerializer().serializeToString(doc), win.HTMLHtmlElement.isInstance(doc.documentElement) ? "text/html" : doc.contentType ]; var url = "data:charset=utf-8," + encodeURIComponent( `(${func})(${serialize}, `.replace("NAME", this.msgName) ); (this.start = e => { var win = e.view, br = win.gBrowser.selectedBrowser; if (br.isRemoteBrowser) { var pmm, {osPid, outerWindowId} = Services.focus .focusedContentBrowsingContext.currentWindowGlobal; for(var ind = 1, num = Services.ppmm.childCount; ind < num; ind++) { var child = Services.ppmm.getChildAt(ind); if (child.osPid == osPid) {pmm = child; break;} } return pmm?.loadProcessScript(url + outerWindowId + ");", false); } var data = {}; Services.focus.getFocusedElementForWindow(br.contentWindow, true, data); this.addTab(win, ...serialize(data.value)); })(e); } });} catch(ex) {Cu.reportError(ex);}
Отсутствует
Ага, зашёл в тему конкретного расширения,
а о том, что код нужен для ucf ни словом не обмолвился.
Не знал, открыл 1-е сообщение в теме, там все ссылки битые, думал, что тема общая для создания "Custom Buttons", буду знать.
Вот это получается самая актуальная? https://forum.mozilla-russia.org/viewtopic.php?pid=787753#p787753
Как я понимаю официально в магазине её нету?
Спасибо за код, буду смотреть.
Отредактировано melkichelik (01-02-2021 21:03:49)
Отсутствует
Можно ли создать кнопку, эмулирующую нажатие мультимедийной клавиши "Стоп/Воспроизведение", которой нас одарил новый?
Отсутствует
Dumby
Как в этот код
/*Initialization Code*/ this.onclick = this.oncontextmenu = function(event) { if (event.button == 0) { var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\memred\\start.vbs"); file.launch(); } if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){ CustomizableUI.setToolbarVisibility("PersonalToolbar", document.querySelector("#PersonalToolbar").collapsed); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; this.tooltipText = "Л: Очистка-Сброс\nП: Панель Закладок "; (ps => { var s = "media.autoplay.default"; this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 0) ? 5 : 5); })(Services.prefs);
еще вставить это
this._handleClick = () => ps.setIntPref(s, ps.getIntPref(s, 350) ? 0 : 350);
Ладно,вроде справился. А паузу сюда можно поставить? "setTimeout(()=> alertsService.closeAlert(), 2000);"
Отредактировано solombala (04-02-2021 20:08:59)
Отсутствует
egorsemenov06
ну уж скриншотеры-то в 21году 21 века уж можно как-нибудь найти программки-то
Image Uploader, KiberInfinity's Screen Shooter
а вот эмулировать нажатие мультимедийной клавиши "Стоп/Воспроизведение"- это находиться в самых передовых областях технологий
Отсутствует
Кому что,на вкус и цвет товарищей нет .Кнопка то очень практичная а расширение ставить или целую программу зачем ?только систему засирать
Можно в портабельном виде поставить.
Отсутствует
эмулировать нажатие мультимедийной клавиши "Стоп/Воспроизведение"- это находиться в самых передовых областях технологий
a какой клавиши? я не знаю что там придумали, я на ЕСР сижу, меня интересует что они намудрили и что надо будет править в следующем ЕСР. а то у меня куча клавиатур на разных устройствах, соответственно разные клавиши управления мультимедиа и разные коды нажатия этих клавиш. можно ли в КастомБаттонс эмулировать нажатие Fn+Ё или Fn+F5/F6?
Отредактировано sonyas75 (06-02-2021 11:19:24)
Отсутствует
Dumby
Не посмотришь фичу, никак не у кого....
https://forum.mozilla-russia.org/viewto … 66#p787966
Отсутствует
Можно ли создать кнопку, эмулирующую нажатие мультимедийной клавиши "Стоп/Воспроизведение"
Вот у меня на клавиатуре нет таких аппаратных клавиш,
и гарнитуры нет, и вообще Windows 7
Ну, попробовал что-то сделать в виртуалке, но без толку.
SendInput через ctypes — не сработало, есть ещё какой-то
MediaControlService.generateMediaControlKey() — ноль реакции (настройку включал).
Тут под новый год завёл себе AHK, просто чтобы парочку клавиш переопределить,
так вот, подумал, может хотя-бы его подрядить — и снова неудача,
то есть, я даже не смог увидеть как бы оно могло бы работать вообще, какая уж там эмуляция.
Не посмотришь фичу, никак не у кого....
https://forum.mozilla-russia.org/viewto … 66#p787966
Смотреть надо тебе, на свой же скриншот, ноды-то красные.
Две последние (popupgroup и tooltip) чуть с синевой — это вообще NAC.
А остальные, чисто красные, — это Shadow DOM.
Их добавляет лисья машинерия кустомэлементщины,
это так в любом <dialog>'е будет, и они этому диалогу ни разу не потомки.
Чем @-moz-document не угодил?
Вот, селектор, наверно, чемодан излишеств, так, просто для примера
@-moz-document url-prefix(chrome://custombuttons/content/editor.xul) { link[href="chrome://global/skin/dialog.css"] + vbox + hbox.dialog-button-box { background-color: red !important; } }
Отсутствует
Dumby
А так тоже пошло.Кстати, а в сам XPI CВ нельзя вставить?
@-moz-document url-prefix(chrome://custombuttons/content/editor.xul) { .dialog-button-box { margin-bottom: 4px !important; padding: 3px!important; margin-top: 22px !important; } }
Отсутствует
Кстати, а в сам XPI CВ нельзя вставить?
Если имеется в виду добавить в какой-нибудь .css-файл,
то сильно сомневаюсь, там всё круго́м AUTHOR_SHEET.
А если в .js-файл, то и сам знаешь что можно.
Примеров загрузки стилей на форуме несметное множество.
Если не как загрузку, то можно в editor2.js
что-нибудь добавить в Editor.prototype.init()
Например, получаем ссылку на .dialog-button-box
и устанавливаем ему атрибут "style", или сеттер ref.style.cssText
Или, там же, можно воткнуть правило прямо в ShadowRoot,
типа на борту созданного элемента <style>, возможно <link>,
или, вообще даже так
... var [ss] = document.documentElement.shadowRoot.styleSheets; ss.insertRule( `.dialog-button-box { margin-bottom: 4px !important; padding: 3px !important; margin-top: 22px !important; }`, ss.cssRules.length );
Отсутствует
Первый раз в жизни установил custom_buttons-0.0.7.0.0.17-fx-paxmod.xpi из №15124. До сего дня не имел с ним дел.
Попробовал несколько готовых кнопок из Готовые кнопки для Custom Buttons, но ни одна не заработала.
Где-то можно взять актуальные коды (для 85)? Или как самому писать - мануалы есть?
Как например сделать кнопку прокрутки вверх?
Отсутствует
Как например сделать кнопку прокрутки вверх?
add_toolbar_buttons.2021.1.25.xpi
но ни одна не заработала
Могу предложить пургуру
[CB]Undo Close Tabs | Форум Mozilla Россия
[CB]Двойным левым кликом добавить закладку в папку закладок. | Форум Mozilla Россия
Отредактировано vending_machine (07-02-2021 23:21:49)
Отсутствует
У меня был код, который создавал картинку - копию картинки под курсором и размещал её в центре экрана.
В Quantume это работает нормально. Но если картинка под курсором была в iframe, то и копия ее получается там же в iframe, а не в центре экрана. В старом движке я прикреплял копию с помощью content.document.body.append(). А на Quantume делаю document.body.append(). А как обратиться к документу именно основного окна, а не к фрейму?
Отсутствует
Есть код № 13314 Добавить подменю "Поиск изображения в" в контекстном меню изображений, от 31.05.2019
Отсутствует
Разобрался. Нужно обращаться к window.top.document
Какую версию СВ можете мне посоветовать для 85 чтоб установить ее без танцев с бубном?
И где ее взять?
Отсутствует
toxa пишетРазобрался. Нужно обращаться к window.top.document
Какую версию СВ можете мне посоветовать для 85 чтоб установить ее без танцев с бубном?
И где ее взять?
А в чём отличие paxmod.xpi и bootstrap.xpi, какая лучше?
И где можно взять готовые кнопки, или хотя бы сниппеты? Как я понимаю, кнопки из раздела Готовые кнопки для Custom Buttons уже работать не будут, там последнее обновление было в 2017 г.
Отсутствует