J'ai travaillé sur une petite extension Chrome avec un problème que je n'arrive pas à cerner et j'apprécierais que quelqu'un l'examine avec une nouvelle perspective.
L'objectif est de créer une extension chrome qui vous permet de sélectionner du texte sur n'importe quel site web et d'afficher une option pour envoyer la sélection vers un autre site web en utilisant un élément du menu contextuel.
Mon manifeste.json ressemble à ça :
{
"name": "Context Menu Search",
"description": "Opens the selected text as keyword in a new window",
"version": "0.1",
"permissions": ["contextMenus"],
"background_page": "background.html"
}
Puis fond.html :
<script src="rightclick.js"></script>
Et rightclick.js :
var selection_callbacks = [];
function getSelection(callback) {
selection_callbacks.push(callback);
chrome.tabs.executeScript(null, { file:"selection.js" });
};
chrome.extension.onRequest.addListener(function (request) {
var callback = selection_callbacks.shift();
callback(request);
});
function sendSearch(selectedText) {
var serviceCall = 'http://www.google.com/search?q=' + selectedText;
chrome.tabs.create({url: serviceCall});
}
var tx = getSelection();
var title = "Test '" + tx + "' menu item";
var id = chrome.contextMenus.create({"title": title, "contexts":[selection],
"onclick": sendSearch(tx)});
console.log("selection item:" + id);
Plus sélection.js :
chrome.extension.sendResponse(window.getSelection().toString());
Jusqu'à présent, la création du menu contextuel fonctionne bien, mais le texte sélectionné ne s'affiche pas du tout. Si quelqu'un a des suggestions sur la façon de résoudre ce problème ainsi que de simplifier le script, j'apprécierais votre contribution.
Merci beaucoup.