И снова здравствуйте)
На 54-й лисе была у меня кнопка - Очистить кэш и удалить флэш куки
this._handleClick =()=> { // очистить кэш .... try { Services.cache.evictEntries(1); Services.cache.evictEntries(2); } catch(e) { Services.cache2.clear() }; // Удалить Flash кукисы .... var dir = Services.dirsvc.get('Home', Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); dir.exists() && dir.remove(true); !dir.exists() && dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification(self.image, self.label, 'Очистил кеш и удалил Flash кукиси'); }; // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .............. var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; self.tooltipText = self.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = types.map(function(key, i) data[key] + zws(i)).join("\n"); var context = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo.default; self.onmouseenter = function() { self.tooltipText = "Л: Очистить кэш и удалить Flash-куки\n" + ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"](context, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } };
Отсутствует
DumbyУ меня расширение Right Links WE с чем-то конфликтует в профиле и начинает работать только после отключения-включения расширения на about:addons.
Можно ли кодом это сделать автоматически:
при завершении работы FF - выключать расширение,
а при запуске - включать?
Вопрос снят.
Отредактировано Garalf (21-02-2020 20:53:14)
На форуме
Подскажите, пожалуйста.
Вот я открываю новое окно из дополнения (Custom Buttons или любое другое) с помощью
Получается нормальное окно и все в нем работает. Я могу любую ссылку открыть в новой вкладке.
Но если я пробую открыть окошко с параметрами
то в этом окошке новую вкладку создать невозможно. Если в контекстном меню ссылки выбрать "Открыть в новой вкладке", то вкладка открывается в родительском окне. Почему нельзя открыть новую вкладку?
Хочу уточнить что у меня ФФ 56
Отредактировано toxa (18-02-2020 13:46:32)
Отсутствует
Andrey_Krropotkin, с твойм исправлением в urlbar вставляет, а в формы нет. До этого никуда не вставлялось.
Твоя кнопка норм работает, правда я css тултипов закомментил, думал перенести insertText, но там коды отличаются пока оставлю так, да и нужно ли вообще может старый удалю, вот там в коде BBCode но я им никогда не пользовался как он работает или вообще работал-ли? там надо по ПКМ вставлять было? ладно посмотрю потом код может пойму)..
Отредактировано func4ptch4 (18-02-2020 17:31:39)
Отсутствует
Andrey_Krropotkin
Эндрю, как в detail иконку темы увеличить?
Этим зафиксировано..
Отсутствует
Спасибо!
есть такая кнопка - "Сохранить всю страницу как PNG"
// Настройка функций кликов мыши для кнопки ................ this.onclick =e=> { if ( e.button == 0 ) savePageInPNG(); if ( e.button == 1 ) gShowPopup(this); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); savePageToPDF(); } }; // Сохраняет страницу как PDF файл через сервис 'pdfmyurl.com' ................ function savePageToPDF() loadURI("http://pdfmyurl.com?url=" + content.location); // Сохранить всю страницу как PNG ................ function savePageInPNG() { var canvas = document.createElementNS(xhtmlns, 'canvas'); canvas.width = content.innerWidth + content.scrollMaxX; canvas.height = content.innerHeight + content.scrollMaxY; var context = canvas.getContext("2d"); ((i = 17)=> { try { context.drawWindow(content, 0, 0, canvas.width, canvas.height, "white") } catch(e) { canvas.height = canvas.width*i; arguments.callee(--i); }; })(); var uri = makeURI(canvas.toDataURL("image/png")); var fp = window.makeFilePicker(); fp.init(window, "Save Screenshot As", fp.modeSave); fp.appendFilter("", "*.png"); var title = gBrowser.mCurrentTab.label.replace(/[:+.\\\/<>?*|"]+/g, " ").replace(/\s\s+/g, " "); fp.defaultString = title + new Date().toLocaleFormat(" %d.%m.%Y. ( %I:%M:%S )") + ".png"; if (fp.show() == fp.returnCancel || !fp.file) return; var wbp = window.makeWebBrowserPersist(); parseInt(Services.appinfo.version) < 36 ? wbp.saveURI(uri, null, null, null, null, fp.file, null) : wbp.saveURI(uri, null, null, null, null, null, fp.file, null); // если FF36+ }; // Подсказка для кнопки ................ this.tooltipText = "Л: Сохранить всю страницу как PNG \nС: CB Меню \nП: Сохранить всю страницу как PDF";
Отредактировано firepox (19-02-2020 12:43:58)
Отсутствует
solombala у меня так и тем установленных нет
.card-heading-icon{
width: 40px !important;
height: 40px !important;
padding: 0px !important;
}
addon-list[type=custombuttons] .addon-icon {
width: 24px !important;
height: 24px !important;
padding-top: 4px !important;
}
Отредактировано Andrey_Krropotkin (19-02-2020 14:40:51)
Отсутствует
Уважаемые гуру скриптописания, можно ли в этом коде реализовать (добавить) блокировку контекстного меню на странице?
addEventListener("click", async e => { if (e.buttons != 2 || e.button != 0) return; // открытие - закрытие FindBar по ПКМ+ЛКМ var findbar = gFindBar; if (findbar) { if (!findbar.hidden) return findbar.close(); } else { findbar = await gFindBarPromise; await new Promise(resolve => setTimeout(resolve, 0)); } findbar.onFindCommand(); }, false, gBrowser.tabpanels || 1);
Отсутствует
блокировку контекстного меню на странице?
Отсутствует
Пожалуйста, помогите подправить, чтобы при нажатии сразу сохранялось сюда - C:\Users\Firepox\Desktop
Без всяких диалогов.
Спасибо!
// Настройка функций кликов мыши для кнопки ................ this.onclick =e=> { if ( e.button == 0 ) savePageInPNG(); if ( e.button == 1 ) gShowPopup(this); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); savePageToPDF(); } }; // Сохраняет страницу как PDF файл через сервис 'pdfmyurl.com' ................ function savePageToPDF() loadURI("http://pdfmyurl.com?url=" + content.location); // Сохранить всю страницу как PNG ................ function savePageInPNG() { var canvas = document.createElementNS(xhtmlns, 'canvas'); canvas.width = content.innerWidth + content.scrollMaxX; canvas.height = content.innerHeight + content.scrollMaxY; var context = canvas.getContext("2d"); ((i = 17)=> { try { context.drawWindow(content, 0, 0, canvas.width, canvas.height, "white") } catch(e) { canvas.height = canvas.width*i; arguments.callee(--i); }; })(); var uri = makeURI(canvas.toDataURL("image/png")); var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath("C:\\Users\\Firepox\\Desktop\\"); var title = gBrowser.mCurrentTab.label.replace(/[:+.\\\/<>?*|"]+/g, " ").replace(/\s\s+/g, " "); var imgName = title + " " + (new Date().toLocaleString("af")).replace(/:/g, "·"); file.append(imgName + ".png"); var wbp = window.makeWebBrowserPersist(); wbp.saveURI(uri, null, null, null, null, null, file, null); }; // Подсказка для кнопки ................ this.tooltipText = "Л: Сохранить всю страницу как PNG \nС: CB Меню \nП: Сохранить всю страницу как PDF";
Отсутствует
Dumby
Как стили сделать независимыми от Аэро ? Код нужен может в config ?
https://forum.mozilla-russia.org/viewto … 08#p778408
Мне то и на ... не нужно , но есть народ упоротый с этим аэро , а рихтовать стили гемморно..
Отредактировано solombala (21-02-2020 20:23:40)
Отсутствует
bunda1
Может быть вы поможете решить проблему?
setTimeout(()=> { var promise = AddonManager.getAddonsByTypes(["extension"]); promise.then(addons=> { addons.forEach(addon=> { if ( addon.name == "Right Links WE" ) { addon.softDisabled = true; setTimeout(()=> addon.softDisabled = false, 2000); } }); }); }, 5000);
В инициализацию. Код после старта браузера через 5 сек выключит и включит Right Links WE
Отсутствует
bunda1, не поможете с моим вопросом: https://forum.mozilla-russia.org/viewto … 18#p776718
«The Truth Is Out There»
Отсутствует
bunda1, не поможете с моим вопросом: https://forum.mozilla-russia.org/viewto … 18#p776718
Даже не знаю как такое можно сделать. Разве только можно отслеживать иконки . Но ты наверно хочешь их как то скрыть?
Отсутствует
bunda1
А нельзя код этот просто на выключение при выходе? Причем, на пару аддонов?
Отсутствует
Попробовал, не получается. Но можно при старте пару аддонов выключить. Пример:
setTimeout(()=> { var names = ["Tampermonkey", "Right Links WE"]; // названия аддонов для отключения var promise = AddonManager.getAddonsByTypes(["extension"]); promise.then(addons=> { addons.forEach(addon=> { if (~names.indexOf(addon.name)) addon.softDisabled = true; }); }); }, 5000);
Отсутствует
bunda1
Хорошо, только timeout , плюс ...Короче , в этот код запихать?
var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\memreduct\\sq.vbs"); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false);
Отсутствует
Как раз в этот код запихать пробовал но не работает:
var observer = { observe:(subject, topic, data)=> { if ( data == "shutdown" ) AddonManager.getAddonsByTypes(["extension"]).then(addons=> { addons.forEach(addon=> { if (addon.name == "Right Links WE") addon.softDisabled = true; }); }); } }; Services.obs.addObserver(observer, "quit-application", false);
Наверно причина в том что AddonManager.getAddonsByTypes это асинхронный код, то есть он срабатывает позже, когда браузер уже выключается
Отсутствует
bunda1
Через ID тоже не сработает? Типа:
Отсутствует
Даже не знаю как такое можно сделать. Разве только можно отслеживать иконки . Но ты наверно хочешь их как то скрыть?
Жаль конечно, но нет, так нет.
А эти иконки у меня и так скрыты.
«The Truth Is Out There»
Отсутствует
А можно перенести кнопку овновления страницы, в адресную строку и добавить такие функций типа Ctrl+ЛКМ, Ctrl+ПКМ, ну и свой функций к ним прикрутить? можно и отдельно кнопку, и еще можно эту chrome://browser/skin/reload-to-stop.svg к кнопке прикрутить? ну чтобы она смогла обработать как фф, хотя все таки лучше интегрировать чем создавать велосипед снова.
Как сюда добавить иконку, если переключаю к примеру на другую функцию он переключает, и обратно возвращает свою что то смотрел примеры но походу я слишком туп, пробовал : ? применить...
Хотя нет не надо, передумал еще с иконками возиться потом ... главное функциональность.
но от примера не отказался бы просто для себя.
Отредактировано func4ptch4 (22-02-2020 09:56:57)
Отсутствует