Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript文本选择事件_Javascript_Javascript Events_Google Chrome Extension - Fatal编程技术网

javascript文本选择事件

javascript文本选择事件,javascript,javascript-events,google-chrome-extension,Javascript,Javascript Events,Google Chrome Extension,这不仅适用于google chrome扩展,也适用于javascript 我正在编写一个chrome扩展,当文本高亮显示并显示上下文菜单时,我会在上下文菜单中显示我的项目,单击该菜单时,应处理所选文本 在打开上下文菜单并选择我的选项后,我得到一个空对象,所有值为零和空 因此,我想实现一些机制,当用户在选择文本后释放鼠标时,该机制将缓冲文本选择,以便触发事件,如果触发任何事件,我可以在全局变量中创建所选文本的副本,并在以后进行处理 当我使用单独的测试代码进行测试时,window.getSelect

这不仅适用于google chrome扩展,也适用于javascript

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

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

因此,我想实现一些机制,当用户在选择文本后释放鼠标时,该机制将缓冲文本选择,以便触发事件,如果触发任何事件,我可以在全局变量中创建所选文本的副本,并在以后进行处理

当我使用单独的测试代码进行测试时,window.getSelected()可以正常工作,但是当我使用扩展时,我无法获得实际选择的文本

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

建议请


这里我已经粘贴了我正在做的事情。单击“保存到word提醒”时,我得到一个空字符串

下面是代码的其余部分



chrome.extension.onRequest.addListener(函数(请求、发送方、发送响应){
开关(请求消息)
{
案例“getSelection”:
sendResponse({data:window.getSelection().toString()});
打破
案例“createMenu”:
seecon();
打破
违约:
sendResponse({data:'无效参数'});
打破
}
});
函数conOnClick(信息,选项卡)
{
/*
sendRequest(tab.id,{method:'getSelection'},函数(响应){
警报(响应数据);
});
*/  
}
//函数seecon()
{
变量上下文=[“选择”];
for(var i=0;i
我只需在文档上设置一个mouseUp事件,然后检查是否有任何选择(如果有,选择是否与以前的选择不同)。

您可以通过
selectionchange
事件监听文本选择中的更改。我相信它只在WebKit浏览器中可用。

对于每个鼠标,可能会有太多事件。。。希望会有一些事件。。。有吗?我认为这是一个很好的观点,但还没有试验过。如果有其他选择的话,用户也应该牢记在心。因此,期待更多的选择和选择。文本选择更改没有任何事件。因此,您需要按照我的建议进行操作(可能会添加一个KeyUp)。这可能是无效的,但没有其他办法…哦。我已经开始研究你的观点了。让我想出一个密码。非常感谢。
<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>