Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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
Chrome扩展javascript,更改文本区域中的选定文本_Javascript_Html_Google Chrome_Google Chrome Extension - Fatal编程技术网

Chrome扩展javascript,更改文本区域中的选定文本

Chrome扩展javascript,更改文本区域中的选定文本,javascript,html,google-chrome,google-chrome-extension,Javascript,Html,Google Chrome,Google Chrome Extension,我正在写一个Chrome的扩展,我不知道如何在textarea中点击选中的文本来更改其他内容 我一直在寻找一些答案,但所有的答案都是针对这样的情况:我们知道textarea的id,然后使用getElementById查找它,这样我们就可以更改它的内容 我正在寻找解决方案,将在任何网站上使用textareas工作。这是我当前的代码: function encrypt(info,tab) { cryptoProperties = sjcl.encrypt("password", info.selec

我正在写一个Chrome的扩展,我不知道如何在textarea中点击选中的文本来更改其他内容

我一直在寻找一些答案,但所有的答案都是针对这样的情况:我们知道textarea的id,然后使用getElementById查找它,这样我们就可以更改它的内容

我正在寻找解决方案,将在任何网站上使用textareas工作。这是我当前的代码:

function encrypt(info,tab) {
cryptoProperties = sjcl.encrypt("password", info.selectionText);
encoded_cryptoProperties = window.btoa("abcd");  
}

chrome.contextMenus.create({
title: "encrypt: %s", 
contexts:["selection"], 
onclick: encrypt,
});

这是一个工作演示,不包括加密:

//这将立即替换所选文本。
//更方便用户的方法是在此处处理选定的文本
//然后在用户确认后,将其更换
document.addEventListener('mouseup',(事件)=>{
let element=document.activeElement;
if(HTMLTextAreaElement的元素实例){
让{selectionStart,selectionEnd}=元素;
//未选择任何内容
如果(selectionStart===selectionEnd)返回;
让string=element.value;
让prefix=string.substring(0,selectionStart);
让中缀=string.substring(selectionStart,selectionEnd);
让postfix=string.substring(selectionEnd);
element.value=前缀+替换文本+后缀;
}
});
突出显示我!
知识是一种美德,是一种美德,是一种美德,是一种美德。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。

除非我遗漏了什么,否则
已经是可编辑元素了。为什么您认为您需要一个扩展来更改所选文本?只需使用剪贴板粘贴和替换所选文本…我想选择文本,单击后对其进行加密,然后交换。如何加密?你有预设的钥匙吗?在你的问题中提到这一点是很好的,但这听起来似乎太宽泛了。这有关系吗?我正在使用sjcl库。我已经对所选文本进行了加密,但我不知道如何交换它。是的,这是相关的,因为如果不共享到目前为止您已有的现有代码,听起来您好像在要求stackoverflow为您免费编写一个项目。document.addEventListener似乎不起作用,即使我只是在那里放了一个警报(“警报”)。有什么想法吗?你必须得到上下文菜单打开的选项卡的
窗口
对象,然后执行
tabWindow.document.addEventListener(…)
,但这超出了这个问题的上下文范围。