1 回答
![?](http://img1.sycdn.imooc.com/545865470001bf9402200220-100-100.jpg)
TA贡献1871条经验 获得超8个赞
我让它工作。不得不使用消息传递并添加 JSON.stringify(info.selectionText); 这是我所做的,以防万一有人遇到同样的问题:
背景.js
var contextMenus = {};
//creates a context menu WHEN selection is made
contextMenus.createSelectText =
chrome.contextMenus.create(
{"title":"Search for '%s'",
"contexts": ["selection"],
},
function (){
if(chrome.runtime.lastError){
console.error(chrome.runtime.lastError.message);
}
}
);
chrome.contextMenus.onClicked.addListener(sendServiceRequest);
chrome.extension.onRequest.addListener(function(tab){
chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response){
sendServiceRequest(response.data);
});
});
function sendServiceRequest(info, selection) {
var serviceCall = 'https://news.google.com/search?q=' + JSON.stringify(info.selectionText);
chrome.tabs.create({url:serviceCall});
console.log(serviceCall);
}
内容脚本.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse){
if(request.method == "getSelection")
else
sendResponse({});
})
添加回答
举报