cahesigwias
В Right Links подобное поведение можно задать.
Добавлено 13-08-2016 18:09:28
Да и кнопка уже есть: [CB]Открывать ссылки в новой вкладке длинным кликом. Забыл про нее.
Отредактировано turbot (13-08-2016 18:09:28)
Отсутствует
cahesigwias
В Right Links подобное поведение можно задать.Добавлено 13-08-2016 18:09:28
Да и кнопка уже есть: [CB]Открывать ссылки в новой вкладке длинным кликом. Забыл про нее.
Спасибо за ссылку на кнопку, то что нужно, но она не хочет работать с мультипроцессностью, это можно ка кто исправить? просто ничего не происходит, если отключить мультипроцессность, то работает как нужно.
Расширение Right Links давно пробовал, уже не помню что, но что то там работало не так как я хочу, а сейчас оно вообще не работает на FF48
Отредактировано cahesigwias (13-08-2016 22:31:41)
Отсутствует
Последний дубль :
this.tooltipText = "folder navigator:\n"+ "Перетащите папку закладок на кнопку.\n"+ "Навигация - клик ЛКМ по кнопке (закрыть активную вкладку)."; var v = 3; //количество первых - одновременно загружаемых вкладок var p = 7; //количество подгружаемых вкладок во время простоя первых var jscript = true; //Отключать javascript глобально var i, d, m; var links = []; this.ondragover = () => false; this.ondrop = e => { var place = e.dataTransfer.getData("text/x-moz-place"), obj; if (place && (obj = JSON.parse(place)).type == "text/x-moz-place-container" && !("annos" in obj && obj.annos.some(anno => anno.name.startsWith("livemark/") || anno.value == "AllBookmarks"))) { var html = e.dataTransfer.getData("text/html"); var doc = new DOMParser().parseFromString(html, "text/html"); links = [...doc.querySelectorAll("body > DL > DD > A")].map(a => a.getAttribute("HREF")); } i = d = 0; m = links.length; if (jscript) gBrowser.mPrefs.setBoolPref("javascript.enabled", false); gBrowser.selectedTab = gBrowser.addTab(links[i]); run(); } function run(){ if([...gBrowser.tabs].some(tab=>{ return tab.getAttribute("busy") }) == 0 && i - d < p + v - 1 && i < m-1) {i++; gBrowser.addTab(links[i]); } else if(i < m-1 && i - d < v-1) {i++; gBrowser.addTab(links[i]); } if(i < m-1) setTimeout(()=>run(), 500); else return; } this.onclick = function(e){ if (e.button == 0){ if(d < m) {var targetTab = gBrowser.selectedTab; gBrowser.removeTab(targetTab); d++;} if(i >= m-1 && d == m) { if (jscript) gBrowser.mPrefs.setBoolPref("javascript.enabled", true); return;} } }
Кнопка для просмотра километровых папок
Отредактировано fokanik (14-08-2016 21:32:14)
Отсутствует
Добрый день. Прошу доработать кнопку /* Панель закладок */ . Необходимо доработать кнопку так, чтобы она стала "инверсной" (кнопка нажата - панель убрана ,а не как в стандартном варианте ,кнопка нажата - панель видна). Заранее спасибо.
/*CODE*/ var tlbr="custombuttons.toolbars.1"; // для второй и последующих кнопок заменить 1 на следующий порядковый номер var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService); this.PS = Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch); var statebar=1-this.PS.getBoolPref(tlbr); this.PS.setBoolPref(tlbr,statebar); */ var tName = "PersonalToolbar"; /*при использовании одной из стандартных панелей замените ниже строку document.getElementById("__customToolbar_" + tName.replace(/ /, "_")).collapsed = statebar; на document.getElementById(tName).collapsed = statebar; */ document.getElementById(tName).collapsed = statebar; this.checked=1-statebar; /*Initialization Code*/ var toolbar = document.getElementById("PersonalToolbar"); self.checked = !toolbar.collapsed; this.onclick = function(e) { if ( e.button ) return; setToolbarVisibility( toolbar, toolbar.collapsed ); self.checked = !toolbar.collapsed; };
Отредактировано Duche (14-08-2016 17:27:10)
Отсутствует
bunda1
Или https://developer.mozilla.org/en-US/Fir … d_lifetime (и это муторно).
Или все-таки (когда и если) починят compatibility shims, и заработает preventDefault() и все прочее. Хотя скорее их тупо вырубят вообще, CPOWs вот утонули даже особо и не всплыв.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
bunda1
Или https://developer.mozilla.org/en-US/Fir … d_lifetime (и это муторно).
Или все-таки (когда и если) починят compatibility shims, и заработает preventDefault() и все прочее. Хотя скорее их тупо вырубят вообще, CPOWs вот утонули даже особо и не всплыв.
Спасибо.
Отсутствует
Duche
this._handleClick =()=> setToolbarVisibility(tName, tName.collapsed); var tName = document.getElementById("PersonalToolbar"); var mo = new MutationObserver(()=> self.checked = tName.collapsed); mo.observe(tName, {attributes: true, attributeFilter: ["collapsed"]}); mo.mutationCallback(addDestructor(() => mo.disconnect()));
Отсутствует
bunda1
Да, это муторно. Вот, попробавал набросать, вроде работает, на первый взгляд.
(code => { var delay = 500; // время удержания в мс var inBackground = true; // открывать в фоновой вкладке var relatedToCurrent = true; // открывать рядом с related вкладкой var p = "CB" + _id.slice(20) + ":LongPressHandler:"; var msgDestroy = p + "Destroy", msgResponse = p + "Response"; code = code.replace(/%MD%/g, msgDestroy).replace("%MR%", msgResponse) .replace("%DL%", delay).replace("%BG%", inBackground); var url = "data:," + encodeURIComponent(code); var mm = window.getGroupMessageManager("browsers"); mm.loadFrameScript(url, true); function handleLongPress(msg) { var [link, ref, ctrl] = msg.data; var bg = inBackground != null ? inBackground : Services.prefs.getBoolPref("browser.tabs.loadInBackground"); gBrowser.loadOneTab(link, { relatedToCurrent, inBackground: ctrl != bg, //referrerURI: makeURI(ref) }); } mm.addMessageListener(msgResponse, handleLongPress); addDestructor(() => { mm.removeDelayedFrameScript(url); mm.broadcastAsyncMessage(msgDestroy); mm.removeMessageListener(msgResponse, handleLongPress); }); })(`({ init() { addEventListener("mousedown", this, false); addMessageListener("%MD%", this); }, receiveMessage() { removeEventListener("mousedown", this, false); removeMessageListener("%MD%", this); }, handleEvent(e) { if (e.type == "mousedown") { if (e.button || e.shiftKey || e.altKey || e.detail != 1) return; var a = e.originalTarget.closest("a[href]"); if (!a || a.href.startsWith("javascript:")) return; this.ctrl = e.ctrlKey; this.initLongPress(a); } else { if (e.type == "click" && !this.link) e.preventDefault(); this.destroyLongPress(); } }, get timer() { delete this.timer; return this.timer = Components.classes["@mozilla.org/timer;1"] .createInstance(Components.interfaces.nsITimer); }, notify() { sendSyncMessage("%MR%", [this.link.href, this.link.ownerDocument.URL, this.ctrl]); this.link = null; if (!%BG%) this.destroyLongPress(); }, initLongPress(a) { addEventListener("click", this, true); addEventListener("dragstart", this, false); this.timer.initWithCallback(this, %DL%, this.timer.TYPE_ONE_SHOT); this.link = a; }, destroyLongPress() { removeEventListener("click", this, true); removeEventListener("dragstart", this, false); this.link && this.timer.cancel(); this.link = null; } }).init();`);
Отсутствует
bunda1
Да, это муторно. Вот, попробавал набросать, вроде работает, на первый взгляд.
Да действительно муторно. Печально что разработчики что то не хорошое делают с лисой раз приходится писать столько кода где раньше можно было обходится парой строчек. Проверил на nightly вроде работает. Спасибо.
Отсутствует
Duche пишет:
Добрый день. Обращаюсь к специалистам, создать новый пункт "Добавить как закладку в" в контекстном меню на странице,
Добрый день.Прошу Вас еще немного доработать кнопку "Добавить как закладку в". При пользовании кнопкой выявился небольшой баг . Продвигаясь по дереву закладок (как на картинке) из контекстного меню и попытки открыть ПКМ контекстное меню на искомой закладке , контекстное меню открывается , но при отпускании ПКМ , контекстное меню пропадает а закладка открывается , как при работе ЛКМ . Заранее спасибо.
Отсутствует
Duche
Замените в первом коде строчку
menuPopup.setAttribute("onclick", "event.preventDefault(); event.stopPropagation(); BookmarksEventHandler.onClick(event, this.parentNode._placesView);");
Хм, а так не работает контекстное меню папок. Надо подумать. Или может подскажет кто.
Отредактировано turbot (15-08-2016 15:12:57)
Отсутствует
Хм, а так не работает контекстное меню папок.
А у меня контекстное маню есть, при длинном клике ПКМ из под Right Links. При коротком клике ПКМ - открытие закладки. Если отключить Right Links то да , не работает контекстное меню.
Отсутствует
Не, не знаю. Не могу найти, как правильно вызвать контекстное меню
Подождём, может что в голову и придёт. Главное , правильно выполняет функцию сохранения , остальное из разряда "хотелочек". Ещё маленькая "хотелочка". В кнопке есть "// всплывающая подсказка ...." "Добавил в папку " как изменить позиционирование подсказки из правого нижнего угла, на право вверх.Заранее спасибо.
Отредактировано Duche (16-08-2016 10:04:27)
Отсутствует
Duche
Если никто не подскажет, то я пас.
как изменить позиционирование подсказки из правого нижнего угла, на право вверх.
Просто - никак. Не стоит оно возни. Можете код, после "// всплывающая подсказка" удалить вовсе, если мешают.
Отсутствует
как изменить позиционирование подсказки из правого нижнего угла, на право вверх.Заранее спасибо.
Немного не в тему, но с помощью стиля можно. Если интересует
/*AGENT_SHEET*/ @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); tooltip, #tooltip, .tooltip, #aHTMLTooltip {padding: 4px 6px !important;} .tooltip-label { text-align: center !important; word-wrap: break-word !important; } #tabbrowser-tab-tooltip, statuspanel, .tooltip-label { left: 2px !important; max-width: 75% !important; top: 94px !important; right: auto !important; } tooltip, #tooltip, .tooltip, #aHTMLTooltip,.statuspanel-label { -moz-appearance: none !important; color: rgb(0,230,0) !important; background: rgba(0,0,0,.5) !important; border: 1px solid rgba(0,0,0,.9) !important; font: normal normal bold 13px trebuchet ms !important; box-shadow: 1px 1px 3px rgba(255,255,255,.5) inset,-1px -1px 3px rgba(255,255,255,.3) inset !important; text-shadow: 1px 1px 2px rgba(0,0,0,.7),1px 1px 1px rgba(0,0,0,.5),-1px -1px 2px rgba(0,0,0,.7) !important; }
Отсутствует