2012-01-30 77 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浏览器中使用。