2015-04-12 94 views
-1

是否可以为google chrome创建一个扩展名do:选择一个单词,单击右键并打开一个新选项卡,将该单词用作url的一部分?字用页面中所选单词打开一个新选项卡

例子:测试

转到页:http://www.example.com/测试

+0

请注意,你问“有可能吗?”答案是“是”。但是如果你正在寻求帮助来做到这一点,你应该更好地制定你的问题。请看[如何提问](http://stackoverflow.com/help/how-to-ask)指南。 – Xan

回答

1

你可以简单地在background.js使用chrome.contextMenus.createchrome.tabs.create。我已经创建了代码,它和我一起工作。

function sendSearch(selectedText) { 
var serviceCall = 'http://www.example.com/' + selectedText; 
chrome.tabs.create({url: serviceCall}); 
} 

chrome.contextMenus.create(
{ 
    title: "Find '%s' on example.com!", 
    contexts:["selection"], 
    onclick: function(info, tab) { 
     sendSearch(info.selectionText); 
    } 
}); 

根据Best practices when using event pages @Xan提到。您可以改用chrome.contextMenus.onClicked。像:

function sendSearch(selectedText) { 
var serviceCall = 'http://www.example.com/' + selectedText; 
chrome.tabs.create({url: serviceCall}); 
} 

chrome.contextMenus.create(
{ 
    title: "Find '%s' on example.com!", 
    contexts:["selection"], 
    "id": "ViewSelectedLink" 
    }); 
function contextClicked(info, tab) { 
    if (info.menuItemId == "ViewSelectedLink") { 
     sendSearch(info.selectionText); 
    } 
} 
chrome.contextMenus.onClicked.addListener(contextClicked); 
+0

我建议将'onclick'移出物品描述到全局事件处理程序。这样它将与事件页面兼容。 (见#7 [这里](https://developer.chrome.com/extensions/event_pages#best-practices)) – Xan

+0

@Xan感谢您的建议。我已经更新了答案。 – gui47

相关问题