2010-12-11 48 views
1

Je crée une extension Chrome qui place des parties de texte stockées et régulièrement utilisées dans des entrées de texte et des zones de texte un élément de menu contextuel est choisi.Insérer du texte dans une entrée de texte/texte au niveau du curseur lorsque le code est exécuté dans un script de contenu d'extension Chrome

La façon dont il est configuré pour fonctionner à l'heure actuelle, il y a une ligne dans le script de contenu qui prend en charge l'insertion:
document.activeElement.value = « TEXT INSERTION » + document.activeElement.value;

Ceci place le texte au début de la zone de texte/zone modifiable sélectionnée. Il serait souhaitable d'insérer le texte partout où l'utilisateur est actuellement cliqué dans la zone de texte, plutôt que juste au début.

J'ai vu beaucoup d'exemples d'entrée de texte au curseur/caret, mais je n'ai pas réussi à les faire fonctionner à partir d'un script de contenu. Comme cela n'a pas besoin d'être compatible avec tous les navigateurs, quel est le moyen le plus simple d'insérer ce texte au niveau du curseur?

Merci pour votre aide

+0

Pourquoi ce besoin d'être cross-browser compatible si elle est une extension Chrome? –

+0

Salut Mike, il n'a pas besoin d'être compatible avec plusieurs navigateurs - juste pour Chrome. – Dan

Répondre

0

La solution utilise le code trouvé à http://www.sitepoint.com/forums/showthread.php?t=709013

Changer les deux premières lignes de ce script afin qu'ils lisent

function insertAtCaret(text) { 
    var txtarea = document.activeElement; 

Le javascript puis n » t besoin de l'identifiant de l'élément sélectionné déclaré.

Cela va dans le script de contenu, ainsi que

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 
insertAtCaret(request.text); 
if (request.greeting == "hello") 
    sendResponse({farewell: "laters"}); 
else 
    sendResponse({farewell: "byebye"}); // snub them.  
}); 
+0

Pouvez-vous s'il vous plaît ajouter manifest.js et d'autres scripts en réponse en tant qu'échantillon de travail? – Jalal