2010-03-05 3 views
1

Je travaille sur une extension Chrome dans laquelle je dois passer un texte en surbrillance dans une navigation_action. J'ai trouvé le code suivant dans un groupe Google, et au moment où il a été écrit, il était encore valide - mais cela ne fonctionne plus ..Google Chrome Extensions: Transférer le texte de la page Web en surbrillance à une navigation_action

Quelqu'un connaît une solution alternative?

background.html:

<html> 
    <head> 
    <script type="text/javascript"> 
     var selection_callbacks = []; 

     function getSelection(callback) { 
     selection_callbacks.push(callback); 
     chrome.tabs.executeScript(null, { file: "contentscript.js" }); 
     }; 

     chrome.extension.onRequest.addListener(function (request) { 
     var callback = selection_callbacks.shift(); 
     callback(request); 
     }); 
    </script> 
    </head> 
    <body> 
    </body> 
</html> 

popup.html:

<html> 
    <head> 
    <script type="text/javascript"> 
     function onSelection(text) { 
     document.getElementById("output").innerHTML = text; 
     } 
     chrome.extension.getBackgroundPage().getSelection(onSelection); 
    </script> 
    </head> 
    <body> 
    <div id="output"> 
     This should be replaced with the selected text 
    </div> 
    </body> 
</html> 

contentscript.js:

chrome.extension.sendRequest(window.getSelection().toString()); 

Répondre

1

Vous pouvez utiliser un vrai content script au lieu d'injecter du JavaScript dans la page avec chrome.extension.executeScript. Vous pouvez alors avoir background.html demander le script de contenu pour la sélection en utilisant chrome.tabs.sendRequest.

Questions connexes