javascript文本选择事件

Jay*_*ran 9 javascript javascript-events google-chrome-extension

这不仅适用于谷歌浏览器扩展程序,也适用于javascript

我正在编写一个chrome扩展,其中当文本突出显示并显示上下文菜单时,我在上下文菜单中显示我的项目,单击该菜单时应处理所选文本

在调出上下文菜单并选择我的选项后,我得到所有值为零和空值的空对象

所以我想实现一些机制,一旦用户在选择文本后释放鼠标就会缓冲文本选择,以便事件可以触发,如果有任何事情发生,我可以在全局变量中复制所选文本可以稍后处理

当我使用单独的测试代码进行测试时,window.getSelected()工作正常,但在使用我的扩展程序时,我调出了上下文菜单,我无法获得实际选中的文本

我在文档中看到的所选文本将是文本和HTML

建议请...


在这里,我粘贴了我正在做的事情.当我点击保存到单词提醒时,我得到一个空字符串

在此输入图像描述

这是代码的其余部分


<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>
Run Code Online (Sandbox Code Playgroud)

Wil*_*der 5

我只需在文档上设置mouseUp事件,然后检查是否有任何选择(如果是,则选择是否与先前的选择不同).