Страницы: 1
Подсакажите, как выполнить поиск в бок.панели? Сделал кнопку, чтоб при открытити бок.панели History, подставлялся домен активной вкладки в строку поиска. Но выполнить поиск не знаю как(жмакнуть Enter).
Кнопка такая:
toggleSidebar('viewHistorySidebar'); setTimeout( ()=> { const sb = document.getElementById("sidebar"); if(sb) { let sbDoc = sb.contentDocument, tb = sbDoc.getElementById("search-box"), dom; if(tb) { dom = getDomain(gBrowser.currentURI.spec); tb.value = dom; // значение в панель ставиццо, как выполнить? // gClipboard.write(dom); } } },500); function getDomain(url) { let dom = (url.toString().startsWith("http")) ? Services.eTLD.getBaseDomain(Services.io.newURI(url, null, null)) : false; return dom; };
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
Но выполнить поиск не знаю как(жмакнуть Enter).
... tb.value = dom; // значение в панель ставиццо, как выполнить? tb._enterSearch();
Отсутствует
Благодарю!
... чтоб не подтормаживало, лучше ставить 1сек(1000 в таймере), 0,5 мало. Открылась бок.панель и через миг фильтр срабатывает. Отлично.
Отредактировано mokujin (03-03-2021 20:40:49)
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
Ещё созрел вопрос: склепал кнопку сортировки вкладок по-домену(чтоб сортировала без http, www и верхних доменов). Подсмотрел в одном расширении...
Но работает наполовину. Что-то собирает вкучу как и хочется, чтоб домены шли подряд, а что-то нет. Сортирует, ЕЯПП с любого места, а не с сначала\слева и поэтому может домен на "A" оказаться вконце(справа).
Подскажите что нитак:
function sortTabs3() { let allTabs = Array.from(gBrowser.visibleTabs), sorted = new Array(); tabs = allTabs.filter(tab => !tab.pinned); sorted = tabs.sort(function(a, b) { let aStr = getDomain(a.linkedBrowser.currentURI.spec), bStr = getDomain(b.linkedBrowser.currentURI.spec), ret; return ret = (aStr && bStr) ? aStr.localeCompare(bStr) : false; }) sorted.forEach(gBrowser.moveTabTo, gBrowser); function getDomain(url) { // console.log("Переданный Url: " + url); let dom = (url.toString().startsWith("http")) ? Services.eTLD.getBaseDomain(Services.io.newURI(url, null, null)) : false; // console.log("Полученный домен из Url: " + dom); return dom; } };
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
mokujin
Так получше?
function sortTabs3() { var num = gBrowser._numPinnedTabs; var tabs = gBrowser.visibleTabs.slice(num); var re = /^https?$/; var sortVal = tab => { var res, uri = tab.linkedBrowser.currentURI; if (re.test(uri.scheme)) try { res = Services.eTLD.getBaseDomain(uri); } catch(ex) { res = uri.asciiHost; } return res ? res + uri.path : "\uffff" + uri.spec; } tabs.sort((a, b) => sortVal(a).localeCompare(sortVal(b))); for(var tab of tabs) gBrowser.moveTabTo(tab, num++); }
Отсутствует
Очень и очень лучше Сотирует как дОлжно. Замечтатаельная и полезная ф-ция получилась.
Благодарю!
...программисты словно войну какую-то ведут за свои обновления. Блин, почему сейчас повсюду мания ухудшать интерфейсы и делать их максимально неудобными?! Radiation
Отсутствует
Страницы: 1