2012-01-30 11 views
9

これは単にGoogleのChromeの拡張機能のためではなく、また、JavaScriptがjavascriptのテキスト選択イベント

は私がで私の項目を表示示されているテキストが強調表示されているクロム拡張し、コンテキストメニューを書いていますクリックされたコンテキストメニューは、私はすべての値がゼロとヌル

で空のオブジェクトを取得し、コンテキストメニューを育て、私のオプションを選択した後に、選択したテキスト

を処理しなければならないので、私はテキストをバッファリングするいくつかのメカニズムを実装したいですすぐに私たちの選択テキストが選択された後にマウスを放して、イベントが発生しても問題が発生した場合は、選択したテキストのコピーをグローバル変数に作成して後で処理できます。

window.getSelected独立したテストコードでテストが、私の拡張子で使用している間、私はテキストとHTML

の提案であろうドキュメンテーションに見るように、私は実際に選択したテキスト

選択したテキストを取得できませんでしたコンテキストメニューを表示場所どうぞ...


ここで私は何をしているのか貼り付けました。私はワードリマインダーに保存]をクリックしたとき、私は空の文字列

enter image description here

、ここを得るコード


<script> 
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 


    switch(request.message) 
    { 
     case 'getSelection': 
      sendResponse({data: window.getSelection().toString()}); 
     break; 

     case 'createMenu': 
      seecon(); 
      break; 

     default: 
      sendResponse({data: 'Invalid arguments'}); 
     break; 
    } 
}); 

function conOnClick(info,tab) 
{ 

/* 
    chrome.extension.sendRequest(tab.id, {method: 'getSelection'}, function(response){ 
     alert(response.data); 
    }); 
*/ 
} 


//function seecon() 
{ 
var contexts = ["selection"]; 
for (var i = 0; i < contexts.length; i++) { 
    var context = contexts[i]; 
    var title = "Save to Word Reminder"; 
    var id = chrome.contextMenus.create({"title": title, "contexts":[context], 
             "onclick": conOnClick}); 

} 

} 



</script> 

答えて

5

私は単純にmouseUpイベントを設定しますの残りの部分でありますドキュメントがあるかどうかを確認し、選択があるかどうかを確認します(選択されている場合は、前の選択と異なる選択かどうか)。

+0

それぞれのマウスのために、あまりにも多くのイベントがある可能性があります。 –

+0

これは良い点だと思うかもしれませんが、実験していません。ユーザーにはいくつかの選択肢がある場合は、心に留めておくといいでしょう。より多くの選択肢とオプションが期待されます。 –

+0

テキスト選択の変更に関するイベントはありません。したがって、私が提案したように(あなたはKeyUpで追加することも可能です)、それを行う必要があります。それは非効率かもしれませんが、他の方法はありません... –

3

selectionchangeイベントでテキスト選択の変更を聞くことができます。私はそれがWebKitブラウザでのみ利用できると信じています。

関連する問題