Страницы: 1
/*CODE*/ /* ------------------------------------------------------------- URLBar Search by LouCypher (aka Zoolcar9) This button will search anything you type in location bar For Firefox 2.0 or above only ------------------------------------------------------------- */ this.search(this, event);
/*Initialization Code*/ if (!("@mozilla.org/browser/search-service;1" in Components.classes)) { this.disabled = true; return; } function searchService() { return Components.classes["@mozilla.org/browser/search-service;1"] .getService(Components.interfaces.nsIBrowserSearchService); } function getInput() { var ss = searchService(); return prompt(ss.currentEngine.name, "", "Search"); } this.search = function(aNode, aEvent) { var openInTab, loadInBackground; try { openInTab = gPrefService.getBoolPref("browser.search.openintab"); loadInBackground = gPrefService.getBoolPref("browser.search.openintab.loadInBackground") } catch(ex) { } var query = ""; if (!gURLBar) { query = getInput(); } else if (gURLBar && gURLBar.focused) { query = gURLBar.value; } if (query == null) return; var url = aNode.engine.getSubmission(query, null).uri.spec; if (openInTab) { var newTab = gBrowser.addTab(url); if (!loadInBackground) gBrowser.selectedTab = newTab; } else openUILink(url, aEvent, false, true); } this.checkForMiddleClick = function(aNode, aEvent) { closeMenus(aEvent.target); if (aEvent.button == 1) { var fn = new Function("event", "this.search(this, event)"); fn.call(aNode, aEvent); if (gURLBar) handleURLBarRevert(); //reset the URL bar } } this.selectEngine = function(aNode, aEvent) { var engine = aEvent.target.engine; var ss = searchService(); ss.currentEngine = ss.getEngineByName(engine.name); aNode.engine = engine; aNode.tooltipText = aNode.engine.name; aNode.image = aEvent.target.getAttribute("src"); } this.populateMenu = function(aNode) { var ss = searchService(); var engines = ss.getVisibleEngines({ }); const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; while(aNode.firstChild && aNode.firstChild.localName != "menuseparator") { aNode.removeChild(aNode.firstChild); } for (var i = engines.length - 1; i >= 0; i--) { var mi = document.createElementNS(kXULNS, "menuitem"); mi.id = "cb-search-" + engines[i].name; mi.className = "menuitem-iconic searchbar-engine-menuitem"; mi.setAttribute("label", engines[i].name); if (engines[i].iconURI) mi.setAttribute("src", engines[i].iconURI.spec); mi.engine = engines[i]; if (mi.engine == ss.currentEngine) mi.style.fontWeight = "bold"; mi.setAttribute("onclick", "parentNode.parentNode.selectEngine(parentNode.parentNode, event)"); aNode.insertBefore(mi, aNode.firstChild); } } this.currentEngine = searchService().currentEngine; var ss = searchService(); this.engine = ss.currentEngine; this.tooltipText = this.engine.name; this.image = this.engine.iconURI.spec; var mp = this.appendChild(document.createElement("menupopup")); mp.setAttribute("onpopupshowing", "parentNode.populateMenu(this)"); mp.setAttribute("oncommand", "event.stopPropagation()"); var managerSeparator = mp.appendChild(document.createElement("menuseparator")); managerSeparator.id = "cb-searchbutton-separator" var managerItem = mp.appendChild(document.createElement("menuitem")); managerItem.setAttribute("label", "Управление списком поисковых систем"); managerItem.setAttribute("oncommand", "openDialog('chrome://browser/content/search/engineManager.xul', " + "'engineManager', 'chrome, dialog=no')"); this.type = "menu"; this.setAttribute("onclick", "this.checkForMiddleClick(this, event)"); /* ------------------------------------------------------------- bunda1 поиск по нажатию на иконку выбранного поисковика https://forum.mozilla-russia.org/viewtopic.php?pid=641679#p641679 ------------------------------------------------------------- */ function getEngineModified(subject, topic, data) { if ( data == "engine-current" && gURLBar.value !== '' ) { var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission( gURLBar.value, null ); gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, false, false ); } }; Services.obs.addObserver( getEngineModified, "browser-search-engine-modified", false ); addDestructor(function() { Services.obs.removeObserver( getEngineModified, "browser-search-engine-modified", false ) });
Отредактировано lokiju (25-12-2016 22:55:59)
Отсутствует
FF 50.1 не работает "Управление списком поисковых систем". Т.е. оно не открывается. Возможно ли исправить?
Я сейчас проверил "Управление списком поисковых систем" на FF 50.1.и меню с поисковиками открывается даже при включенном e10.
Отсутствует
Снимки сделаны в FF42
Отсутствует
В FF 50.1 окно"Управление списком поисковых систем" не появляется.
Да, не появляется. Я ошибся, извиняюсь. На FF 50.1 уже нет "Управление списком поисковых систем", могу предложить только такой вариант:
/*Initialization Code*/ if (!("@mozilla.org/browser/search-service;1" in Components.classes)) { this.disabled = true; return; } function searchService() { return Components.classes["@mozilla.org/browser/search-service;1"] .getService(Components.interfaces.nsIBrowserSearchService); } function getInput() { var ss = searchService(); return prompt(ss.currentEngine.name, "", "Search"); } this.search = function(aNode, aEvent) { var openInTab, loadInBackground; try { openInTab = gPrefService.getBoolPref("browser.search.openintab"); loadInBackground = gPrefService.getBoolPref("browser.search.openintab.loadInBackground") } catch(ex) { } var query = ""; if (!gURLBar) { query = getInput(); } else if (gURLBar && gURLBar.focused) { query = gURLBar.value; } if (query == null) return; var url = aNode.engine.getSubmission(query, null).uri.spec; if (openInTab) { var newTab = gBrowser.addTab(url); if (!loadInBackground) gBrowser.selectedTab = newTab; } else openUILink(url, aEvent, false, true); } this.checkForMiddleClick = function(aNode, aEvent) { closeMenus(aEvent.target); if (aEvent.button == 1) { var fn = new Function("event", "this.search(this, event)"); fn.call(aNode, aEvent); if (gURLBar) handleURLBarRevert(); //reset the URL bar } } this.selectEngine = function(aNode, aEvent) { var engine = aEvent.target.engine; var ss = searchService(); ss.currentEngine = ss.getEngineByName(engine.name); aNode.engine = engine; aNode.tooltipText = aNode.engine.name; aNode.image = aEvent.target.getAttribute("src"); } this.populateMenu = function(aNode) { var ss = searchService(); var engines = ss.getVisibleEngines({ }); const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; while(aNode.firstChild && aNode.firstChild.localName != "menuseparator") { aNode.removeChild(aNode.firstChild); } for (var i = engines.length - 1; i >= 0; i--) { var mi = document.createElementNS(kXULNS, "menuitem"); mi.id = "cb-search-" + engines[i].name; mi.className = "menuitem-iconic searchbar-engine-menuitem"; mi.setAttribute("label", engines[i].name); if (engines[i].iconURI) mi.setAttribute("src", engines[i].iconURI.spec); mi.engine = engines[i]; if (mi.engine == ss.currentEngine) mi.style.fontWeight = "bold"; mi.setAttribute("onclick", "parentNode.parentNode.selectEngine(parentNode.parentNode, event)"); aNode.insertBefore(mi, aNode.firstChild); } } this.currentEngine = searchService().currentEngine; var ss = searchService(); this.engine = ss.currentEngine; this.tooltipText = this.engine.name; this.image = this.engine.iconURI.spec; var mp = this.appendChild(document.createElement("menupopup")); mp.setAttribute("onpopupshowing", "parentNode.populateMenu(this)"); mp.setAttribute("oncommand", "event.stopPropagation()"); var managerSeparator = mp.appendChild(document.createElement("menuseparator")); managerSeparator.id = "cb-searchbutton-separator" var managerItem = mp.appendChild(document.createElement("menuitem")); managerItem.setAttribute("label", "Изменить настройки поиска"); managerItem.onclick = function() gBrowser.selectedTab = gBrowser.addTab("about:preferences#search"); this.type = "menu"; this.setAttribute("onclick", "this.checkForMiddleClick(this, event)"); /* ------------------------------------------------------------- bunda1 поиск по нажатию на иконку выбранного поисковика https://forum.mozilla-russia.org/viewtopic.php?pid=641679#p641679 ------------------------------------------------------------- */ function getEngineModified(subject, topic, data) { if ( data == "engine-current" && gURLBar.value !== '' ) { var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission( gURLBar.value, null ); gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, false, false ); } }; Services.obs.addObserver( getEngineModified, "browser-search-engine-modified", false ); addDestructor(function() { Services.obs.removeObserver( getEngineModified, "browser-search-engine-modified", false ) });
Отсутствует
bunda1
спасибо. А с этим подскажите
где теперь находятся файлы поисковых плагинов, дефолтные и добавленные пользователем?
Раньше достаточно было в профиль скопировать папку searchplugins и перезапустить браузер чтобы ранее установленные на другом профиле поисковики заработали. На FF50.1 поисковики из папки searchplugins не подхватываются.
Отсутствует
Вроде как файлы поисковых плагинов теперь находится в omni.ja, вот тут можно почитать: Firefox 40: "searchplugins" Folder | Форум поддержки Firefox | Поддержка Mozilla
Отсутствует
bunda1, с наступившими праздниками. Спасибо, что напомнили использовать поиск по форуму. Нашёл - что надо.
Невозможно добавить свой поисковый плагин. | Форум Mozilla Россия
Отредактировано lokiju (12-01-2017 11:15:39)
Отсутствует
Страницы: 1