2

我的问题是关于网址列。 Chrome API提供的思考,我想知道是否有可能在清单上有多个关键字。网址列multipe关键字

我一直在思考一个正则表达式或类似的东西,但我真的不知道该怎么办...

回答

0

我想我刚刚找到一个解决方案。

我发现,当你为“尝试”的搜索使用Google的网址是:

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

而且,当来自Chrome的网址是:

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

所以基本上如果我检查是否有sourceid = Chrome上的URL我可以重定向这样。你怎么看 ?

// 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

没错上的相关信息,这就是我也用过(忘记提及它)。需要注意的是,如果您手动更改搜索提供商(例如,在您所在国家/地区的谷歌的本地化版本),它不会发送此参数 – serg 2011-03-18 17:19:19

+0

是的,事实上,我认为这是最好的解决方案,问题只是我必须把它写入所有类型的搜索引擎的...所以不是真正通用的,但好... 你看到另一种解决办法? – Sindar 2011-03-18 17:21:06

+0

不,不能考虑其他事情。 – serg 2011-03-18 17:23:28

0

对不起,不可能。

我看你还是试图让自定义搜索提供商。我想给你一个关于我在类似的扩展中做了什么的想法,如果你用大写字母输入关键字,触发谷歌幸运搜索而不是常规搜索。它有一些缺陷和局限性(最大的一个是默认搜索提供者必须是谷歌,它仍然短暂显示谷歌的搜索结果),但至少东西:

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插件)。

+0

感谢帮助我再次花花公子。事情是,我已经想到了这个解决方案,但我必须使用雅虎搜索。技术上有什么我能做的就是重定向在雅虎的所有用户,但也很给多... 我真的继续寻找另一种解决方案,但不是很多网络这个... – Sindar 2011-03-18 16:36:52