2012-01-30 74 views
9

這不僅僅是谷歌瀏覽器的擴展,也爲JavaScriptJavaScript的文本選擇事件

我寫一個Chrome擴展中,當文本被高亮顯示和上下文菜單顯示我在顯示我的項目點擊它時,上下文菜單中應處理帶來了上下文菜單,然後選擇我的選項後選擇的文本

我得到空對象的所有值零和空

,所以我想實現某種機制,將緩衝區中的文本我們儘快選擇呃選擇文本後釋放鼠標,以便事件可以觸發,如果有任何事情發生,我可以在全局變量中創建選定文本的副本,並可以稍後處理

window.getSelected()正常工作,當我有獨立的測試代碼進行測試,但同時我的擴展使用,其中i在彈出的右鍵菜單正如我在單證看到將文本和HTML

建議,我不能得到實際選定的文本

選定的文本請...


在這裏,我粘貼了我正在做的事情。當我點擊保存爲Word提醒我得到一個空字符串

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

對於每個鼠標可能會有太多的事件...希望有某種事件...在那裏? – 2012-01-30 13:31:28

+0

我可以認爲這很好,但沒有嘗試過。和用戶,如果可能有一些替代品,那也是很好的記住。所以期待更多的選擇和選擇。 – 2012-01-30 13:33:18

+0

文本選擇更改沒有事件。因此,你需要按照我的建議來做(可能會添加一個KeyUp)。這可能是無效的,但沒有其他的方式... – 2012-01-30 13:44:38

3

您可以通過selectionchange事件聆聽文本選擇的更改。我相信它只能在WebKit瀏覽器中使用。