我的问题是关于多功能框。 Chrome API提供的思路,我想知道清单上是否有可能有多个关键字。
我正在考虑使用正则表达式或类似的东西,但我真的不知道该怎么做......
答案 0 :(得分:0)
抱歉,不可能。
我发现您仍在尝试制作自定义搜索提供商。我想让你知道我在类似的扩展中做了什么,如果你用大写字母键入你的关键字,它会触发google lucky search而不是常规搜索。它有一些陷阱和限制(最大的一个是默认搜索提供商必须是谷歌,它仍然简要显示谷歌搜索结果),但至少有一些东西:
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 Parser插件)。
答案 1 :(得分:0)
我想我只是找到了解决方案。
我发现当你使用谷歌搜索“尝试”时,网址为:
当它来自Chrome网址时,它是:
所以基本上如果我检查网址上是否有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;
}