Je cherche un moyen de placer le texte sélectionné dans mon Chrome.
Je veux ex. sélectionnez un texte dans le flux facebook et lorsque je clique sur mon icône, il l'obtiendra et affichera le texte sélectionné dans mon extension.
Je suis arrivé jusqu'ici:
chrome.tabs.executeScript(null, {
code: "alert(window.getSelection().toString());"
})
il obtient le texte sélectionné et l'alerte avec un message dans Chrome. Cependant, je veux le montrer dans ma popup html. Je veux l'écrire comme ceci:
document.getElementById("output").value = "Selected text here(but how)"
Besoin d'aide! et je sais qu'il y a une autre question à ce sujet, mais ils ne m'ont pas donné exactement ce que je voulais ..
Vous pouvez utiliser la dernière expression évaluée par le code exécuté dans une fonction de rappel:
chrome.tabs.executeScript( {
code: "window.getSelection().toString();"
}, function(selection) {
document.getElementById("output").value = selection[0];
});
Vous pouvez le faire en utilisant Messagerie des extensions . Fondamentalement, votre "page d'arrière-plan" enverra la demande à votre service. Par exemple, disons que vous avez un "popup" et une fois que vous cliquez dessus, il fera une "recherche Google" qui est votre service.
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getSelection")
sendResponse({data: window.getSelection().toString()});
else
sendResponse({}); // snub them.
});
Quelques références
Ou vous pouvez utiliser ce plugin
Pour Angular 8.2 J'utilise ce code:
chrome.tabs.executeScript( { code: 'window.getSelection().toString();'}, selectedText => {
(document.getElementById('text-input') as HTMLInputElement).value = selectedText[0];
console.log(selectedText[0]);
});