JavaScript 文本选择事件

2024-04-11

这不仅适用于 Google Chrome 扩展,也适用于 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>

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 文本选择事件 的相关文章