В этом примере я ищу открытое окно, открывающее результаты поиска на новой вкладке. но вам не нужно это делать. вы можете использовать XHR. если вам нужно сделать это, просто возьмите параметры submission
, как показано ниже, и вместо того, чтобы подключить их к win.openLinkIn
, затем подключите его к XHR.
Cu.import('resource://gre/modules/Services.jsm');
var win = Services.wm.getMostRecentWindow('navigator:browser');
if (!win) {
throw new Error('no win found of type "navigator:browser" is open');
}
var engineName = 'NAME OF INSTALLED ENGINE YOU WANT TO SEARCH WITH HERE';
console.log('enigneName:', engineName)
var engine = Services.search.getEngineByName(engineName)
if (!engine) {
throw new Error('could not find engine with name of "' + engineName + '"');
}
var searchText = 'i want to search this value'; //if you want currently filled in text of search bar do this: win.BrowserSearch.searchBar.value
var submission = engine.getSubmission(searchText, null, 'searchbar');
var useNewTab = true;
var inBg = false; //if use new tab do you want to open it in background or foreground?
win.openLinkIn(submission.uri.spec,
useNewTab ? 'tab' : 'current', {
postData: submission.postData,
inBackground: inBg,
relatedToCurrent: true //set this to true, if you are opening in new tab AND want the tab to sit next to it, if you are opening in new tab and set this to false then the new tab will open at end of tab bar
});
, если вы хотите, чтобы получить список доступных имен поисковых систем, вы можете сделать это:
var engines = Services.search.getVisibleEngines();
var engineNames = [];
for (var i=0; i<engines.length; i++) {
engineNames.push(engines[i].name);
}
console.log('engine names of the installed engines:', engineNames);
Спасибо вам Noitidart! Это именно то, что я искал. – hooray
мое удовольствие :)! – Noitidart
Извините, что беспокою вас снова Noitidart, но знаете ли вы, могу ли я получить значок поисковой системы? Я хочу использовать его в формате data.url. Я посмотрел в массив движков, и он перечисляет значки как null или показывает getIcons methonds с собственным кодом, и мои поиски до сих пор были бесплодны. Есть идеи ? – hooray