2010-12-11 9 views
1

定期的に保存されたテキストをテキスト入力とテキストエリアに配置するChrome拡張機能を作成していますコンテキストメニュー項目が選択されます。Chrome拡張コンテンツスクリプトでコードが実行されているときにカーソルのテキストエリア/テキスト入力にテキストを挿入します。

現時点で動作するようにセットアップされた方法は、挿入の世話をするコンテンツスクリプト内の行があります:
document.activeElement.value = document.activeElement.value +「TEXT挿入するには」;

これは、選択されたテキストボックス/編集可能領域の先頭にテキストを置きます。テキストボックスには、ユーザーが現在クリックされている場所ではなく、開始時にテキストを挿入するのが望ましいでしょう。

私は、カーソル/キャレットでテキストを入力するための例をたくさん見てきましたが、コンテンツスクリプトからそれらを動作させることができませんでした。これはブラウザ間で互換性がある必要はないので、このテキストをカーソルに挿入する最も簡単な方法は何ですか?彼らは

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

JavaScriptを読み込むようにあなたの助けを

おかげ

+0

とともに、コンテンツのスクリプトで行くなぜそれがChromeの拡張機能のためであれば、クロスブラウザの互換性があるために、この必要性? –

+0

こんにちはマイク、それはクロスブラウザに対応する必要はありません - ちょうどクロムのため。 – Dan

答えて

0

ソリューション」はdoesnの、そのスクリプトの行の最初のカップルを変更するhttp://www.sitepoint.com/forums/showthread.php?t=709013

で見つけたコードを使用しています選択された要素のidを宣言する必要がありません。

これは

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

manifest.jsやその他のスクリプトを答えとして追加してください。 – Jalal

関連する問題