Omnibox multipe Ключевое слово - PullRequest
2 голосов
/ 18 марта 2011

Мой вопрос о омнибоксе. Мысль, предоставляемая Chrome API, хотела узнать, есть ли возможность иметь несколько ключевых слов в манифесте.

Я думаю о регулярном выражении или о чем-то подобном, но я действительно не знаю, что делать ...

Ответы [ 2 ]

0 голосов
/ 18 марта 2011

Мне кажется, я только что нашел решение.

Я обнаружил, что когда вы выполняете поиск "TRY" с помощью Google, URL-адрес будет:

http://www.google.com/#sclient=psy&hl=fr&site=&source=hp&q=TRY&aq=f&aqi=&aql=&oq=&pbx=1&fp=ec3d6f66084ab746

А если исходить из URL Chrome, то это:

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=TRY

Так что, в принципе, если я проверю, есть ли в URL sourceid = Chrome, я могу перенаправить вот так. Что ты думаешь?

// If Google Search from the URL (sourceid)
if(URL.match('google') && parseUri(URL).queryKey['sourceid'] == 'chrome')
{
    chrome.tabs.update(tabId, { url: 'http://search.yahoo.com/search?p=' + parseUri(URL).queryKey['q'] });
    return;
} // If Bing Search from the URL (setmkt)
else if(URL.match('bing') && parseUri(URL).queryKey['setmkt'])
{
    chrome.tabs.update(tabId, { url: 'http://search.yahoo.com/search?p=' + parseUri(URL).queryKey['p'] });
    return;
}
0 голосов
/ 18 марта 2011

Извините, это невозможно.

Я вижу, вы все еще пытаетесь создать пользовательский поисковый сервис.Я хотел дать вам представление о том, что я сделал в похожем расширении, которое запускает счастливый поиск в Google вместо обычного, если вы, например, вводите ключевое слово заглавными буквами.У него есть некоторые подводные камни и ограничения (самое большое из них заключается в том, что поисковым сервисом по умолчанию должен быть Google, и он все еще кратко показывает результаты поиска Google), но по крайней мере что-то:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
      if(changeInfo.status == "loading") {
              var url = $.url.setUrl(tab.url);
               if((url.attr("protocol") == "https" && url.attr("host").indexOf("encrypted.google.") == 0
                                      || url.attr("protocol") == "http" && url.attr("host").indexOf("www.google.") == 0)
                              && url.attr("path") == "/search" && url.param("q") && isAllCapital(url.param("q"))) {

                      //do something with search term inside url.param("q")
              }
      }
});

(я использую URLПарсер плагин).

...