我可以在Google Chrome浏览器中添加右键单击选项吗?


18

在Google Chrome浏览器中,如果我选择一段文字并右键单击它,则可以选择:

“在Google上搜索[文本]”

我发现这非常有用,但我也想添加自己的选项。

例如,我想添加使用所选文本搜索amazon.co.uk或使用所选文本(例如地址或邮政编码)直接进入Google地图的功能,等等。

我可以使用PhraseExpress添加此功能,但宁愿能够直接从Chrome进行操作-是否可以?

Answers:


12

这是一个扩展,该扩展使用Context Menus API将选项添加到右键菜单中以选择文本,并允许您定义自己的自定义搜索。

尝试http://maps.google.com/maps?q=TESTSEARCH使用Google Maps和http://www.amazon.co.uk/s/?url=search-alias%3Daps&field-keywords=TESTSEARCHAmazon.co.uk。


是的,我认为这正是我想要的-谢谢。顺便说一句,需要在字符串中添加术语TESTSEARCH才能使用所选的单词或短语,并且效果很好。
andygrunt

我已经修改了答案以反映这一点。
gdejohn

15

到目前为止,开发人员和Beta渠道中都提供了Context Menus API。您可以使用它编写自己的扩展程序,这些扩展程序会在右键菜单中添加选项。请注意,这仅适用于Google Chrome版本6及更高版本。

以下是官方扩展程序库中的示例:

我还根据该代码编写了自己的三个:

右键单击链接,单击“ 另存为...”,在计算机上查找文件,然后将其拖到Google Chrome窗口中,则风险自负。

在此处阅读有关API的信息:

要编写自己的文件,您需要一个manifest.json文件,该文件应如下所示:

{
   "background_page": "background.html",
   "description": "Add a context menu item to search for selected text at Google Maps.",
   "icons": {
      "16": "icon16.png",
      "48": "icon48.png"
   },
   "minimum_chrome_version": "6",
   "name": "Google Maps Right Click",
   "permissions": [ "contextMenus", "tabs" ],
   "version": "1.0"
}

您还需要一个background.html文件,该文件应如下所示:

<script>

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});

</script>

最后,上下文菜单至少应具有16×16像素的图标,扩展管理页面应至少具有48×48像素的图标。您还可以指定一个128×128像素的图标(在安装过程中显示),如果要向您的扩展程序提交扩展名,则可以指定一个32×32像素的图标。您的所有图标都需要在manifest.json中列出。确保文件类型和名称匹配。

将图标,background.html和manifest.json放到一个文件夹中,然后转到扩展管理页面chrome://extensions,在“ 开发人员”模式下查看(我认为您需要运行Beta或更高版本才能显示该信息),单击“ 包扩展名”,在“ 扩展名”根目录旁边,单击“ 浏览”,找到并选择您创建的文件夹,单击“ 确定”,然后将生成的.crx文件拖到Google Chrome窗口中。


感谢您的Charlatan。我听说过新的API,但一直等到找到符合我的愿望的扩展程序,然后再将其发布为最终答案。我非常怀疑我会尝试自己做,因为有比我更好的人去做。也许“上下文搜索”扩展的作者将使用新的API对其进行重写。
andygrunt 2010年

别客气。将上述示例用于其他站点确实非常容易。要使其正常工作,您要做的就是更改URL。其他一切都只是使它漂亮。我已经编辑了答案中的代码,以用于搜索Google Maps。只需要改变五件事。
gdejohn

请注意,chrome扩展有一些更改,即,manifest.json现在是版本2,并且很多东西已经更改。
杰森

您到Dropbox的链接已损坏。愿意更新吗?
Bob Hopez

@BobHopez在过去的九年中,这些扩展不再适用于Chrome的所有更改。
gdejohn

5

有一个上下文搜索扩展程序可以满足您的需求,但它不会在右键单击菜单中添加任何内容。相反,在页面上选择了一部分文本后,它将显示一个带有蓝色三角形的小按钮,然后单击它会弹出菜单。 替代文字


优秀。这完成了我想要的99%。正如您所说,它不会在右键菜单中添加选项,但更重要的是,它不适用于所有地方,例如,在Google搜索框中写一些内容,然后选择它,并且按钮不会出现。我仍然想听听是否可以将选项添加到右键菜单,但这确实可以继续。谢谢。
andygrunt

AFAIK无法将选项添加到Chrome本机菜单(如右上角的“选项”菜单),因为扩展程序只能调整DOM并显示弹出窗口。可能这是获得更好的跨平台兼容性的一种故意选择。
whitequark 2010年

1
这是我坚持使用Firefox的原因之一。
CGA

@CGA:Firefox很不错,我用了很多年,但是在Atom 2x1600上网本上它显得太迟钝了。
whitequark 2010年

不能同意您的意见。
CGA 2010年

1

我一直在享受一个名为“ 自定义右键单击菜单”的扩展程序,该扩展程序 允许您创建完全可配置的右键单击菜单项,甚至可以在其他浏览器中运行(Opera:安装Chrome扩展程序,Firefox:Chrome Store Foxified)。

  • 从Chrome商店安装“自定义右键菜单”
  • 打开自定义右键菜单的选项
  • 在“编辑CRM”部分中,选择“选择”
  • 向下滚动到“常用搜索引擎”,然后添加一个
  • 它在“编辑CRM”部分中添加了该搜索引擎。
  • 单击它,而不是按其齿轮,对其进行编辑。
  • 将名称更改为“ Search amazon.co.uk”或其他名称
  • 将代码更改为

    var query;
    var url = "https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    
  • 创建脚本类型的另一个菜单项,将其命名为“ Google Map”或类似名称,并以相同的方式进行编码:

    var query;
    var url = "https://www.google.com/maps/search/%s";
    if (crmAPI.getSelection()) {
        query = crmAPI.getSelection();
    } else {
        query = window.prompt('Please enter a search query.');
    }
    if (query) {
        window.open(url.replace(/%s/g,query), '_blank');
    }
    

0

有一个扩展名为“上下文菜单搜索”。它允许您向其添加URL,然后在选择文本并单击其中一个URL时,会将文本传递给您单击的URL。

例如,YouTube的搜索URL为:

http://www.youtube.com/results?search_query=TESTSEARCH

TESTSEARCH是您要搜索的文本。在扩展名中,添加此行,并在按下时自动将TESTSEARCH替换为所选文本。您当然可以为每个URL添加一个标签。

这是扩展的链接。

https://chrome.google.com/webstore/detail/ocpcmghnefmdhljkoiapafejjohldoga


0

嗨,既然主要问题已经回答,我想做点贡献。

这是一个经过简单修改的​​脚本,类似于使用Google进行反向图像搜索,但是将imglink.jpg重定向到Jeffrey的Exif Viewer以分析图像的EXIF。

感谢gdejohn

轻松,创建这2个文件(我使用记事本),添加一些图标16x16、48x48和128x128(或删除行),然后进入chrome:// extensions / tick开发人员模式,添加包含文件的文件夹。

文件名:manifest.json

{
"manifest_version": 2,
    "background" : { "scripts": ["background.js"] },
    "description": "Agrega un menu contextual para ver el EXIF de imagenes. Jeffrey's Exif Viewer",
    "icons": {
            "16": "icon16.png",
            "48": "icon48.png",
            "128": "icon128.png"
        },
   "minimum_chrome_version": "6",
   "name": "Regex Exif Viewer Right Click",
   "permissions": [ "contextMenus", "tabs", "http://*/*",
 "https://*/*" ],
   "version": "1.0"
}

档名:background.js

/**
 * Returns a handler which will open a new tab when activated.
 */


function getClickHandler() {
  return function(info, tab) {

    // The srcUrl property is only available for image elements.

var url = "http://regex.info/exif.cgi?imgurl=" + info.srcUrl;

    // Create a new tabto the info page.

chrome.tabs.create({ url: url, });
  };
};



/**
 * Create a context menu which will only show up for images.
 */


chrome.contextMenus.create({
  "title" : "Get image info via Jeffrey's Exif Viewer",
  "type" : "normal",
  "contexts" : ["image"],
  "onclick" : getClickHandler()
});
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.