【问题标题】:Chrome extension: splitting selection into two search stringsChrome扩展:将选择分成两个搜索字符串
【发布时间】:2016-08-08 06:11:12
【问题描述】:

创建上下文菜单 chrome 扩展,通过各种系统搜索突出显示的文本。

目前,搜索是通过获取突出显示的文本并将其添加到搜索 URL 的末尾来运行的。例如:

{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://www.intodns.com/"+searchstring})
}

eNom 域管理的搜索 URL 将搜索词分为 SLD 和 TLD 两部分,如下:

http://www.enom.com/domains/control-panel/default.aspx?sld=DOMAIN&tld=COM

试图找出一种方法将选择文本分成两部分,sld 和 tld,然后将每个部分插入搜索 URL 中的相应位置。

最终结果将允许用户突出显示“stackoverflow.com”,通过上下文菜单运行搜索,并最终在以下网址上出现一个新标签:

http://www.enom.com/domains/control-panel/default.aspx?sld=stackoverflow&tld=com

【问题讨论】:

  • 所以你只想把searchstring 像“stackoverflow.com”变成“stackoverflow”和“com”,或者“google.co.uk”变成“google”和“co.uk” “?
  • 这是第一步,第二步就是将这两部分插入到搜索URL中
  • 对于 TLD 的通用检测,最好使用 Public Suffix Listpublicsuffixlist.js 库:publicSuffixList.getPublicSuffix('stackoverflow.com')publicSuffixList.getDomain('stackoverflow.com')

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

我试图让它更健壮;它不应包含“www”。当它在开始时,但如果有一个“www”。稍后由于某种原因它会允许它。

var searchstring = info.selectionText;

var parts = searchstring.match(/^(?:\w+:\/\/\/?)?(?:www\.)?([^\.]+)\.(.+)/i);

var name = parts[1], com = parts[2];

chrome.tabs.create({url: "http://www.enom.com/domains/control-panel/default.aspx?sld="+name+"&tld="+com})

【讨论】:

  • 谢谢你,这很好用!我很好奇,如果“www”有没有办法使这项工作。是否包含在选择中?此代码假定它将被省略,因为它只占一个“。” .也许有什么东西迫使它忽略“www”。具体来说?
  • 此版本在选择“www.stackoverflow.com”时返回以下 URL:enom.com/domains/control-panel/…
  • 与上次结果相同,分别为 SLD 和 TLD 生成“www.s”和“www”。 (再次感谢您的帮助)
  • 我做了一个小改动来解决一个不相关的问题,但听起来扩展程序只是没有“刷新”或其他什么?
  • 到目前为止工作完美,在 www 上试过。和www。使用各种 TLD,均已正确注册。我欠你一杯啤酒!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 2015-11-14
  • 2020-08-23
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多