【问题标题】:Paste the string to a text box. Chrome Extension将字符串粘贴到文本框中。 Chrome 扩展程序
【发布时间】:2014-09-13 18:40:05
【问题描述】:

我正在制作一个需要复制和粘贴文本的 chrome 扩展程序。假设用户在任何网页上选择了一些文本,它应该被复制到一个变量中,当用户按下 ctrl+3 时(如果在文本框中或我们正常 ctrl+v 工作的地方)它应该粘贴它。一个普通的复制粘贴工具,但有不同的快捷方式。

目前我的脚本有这个功能: 我正在正确检索数据,但不知道如何粘贴。

var copy_paste1;
document.onkeydown = function(evt) {
    evt = evt || window.event;
    if (evt.keyCode == 49 && evt.ctrlKey) {
        var c = window.getSelection();
        copy_paste1 = c
        alert(copy_paste1);
        document.getElementById("myButtonId").click();
    }
    if (evt.keyCode == 51 && evt.ctrlKey) {
        alert(copy_paste1);
        //****INSTEAD OF THIS ALERT I WANT TO PASTE!
    }
}; 

我该如何继续?

【问题讨论】:

    标签: javascript jquery google-chrome google-chrome-extension google-chrome-devtools


    【解决方案1】:

    您可以使用document.activeElement 获取当前焦点元素,然后尝试设置它的值:

    document.activeElement.value = copy_paste1;
    

    当然,这是最基本的方法 - 建议在尝试设置值之前至少添加一些检查(即检查类型是否为文本框、文本区域等),但这应该得到你开始了。

    【讨论】:

    • 嗨,我试过这种方法。但我不知道为什么它似乎不起作用。我在stackoverflow页面上尝试过。当我按下 Ctrl+1 时,它很容易复制它并发出警报。但是当我试图通过 Ctrl+3 粘贴它时,什么都没有粘贴。
    • 可能是因为 Ctrl+ 保留用于 Chrome 中的选项卡切换。我怀疑你可以使用它,因为严格来说没有办法覆盖它。
    • 我查过了。至少在我的浏览器版本中并非如此。两个警报早些时候都运行良好。不知何故, document.activeElement.value = copy_paste1 似乎不起作用。我的意思是操作正在进行,因为我之后尝试发出测试警报,但没有粘贴任何内容。
    • 我发现了问题,但无法解决。即使复制后,变量 copy_paste1 下也没有任何内容。
    • if (evt.keyCode == 51 && evt.ctrlKey) { curElement=document.activeElement;警报(复制粘贴1); curElement.value=copy_paste1;警报(“完成”);但是当我在文本区域执行此操作时。我收到一个空白警报,没有任何内容被复制到文本区域,然后一个警报说完成。如果我将 curElement.value=copy_paste1 设置为 curElement.value="Hi",则文本区域会更改。当 activeElement 是文本区域或输入框时,为什么我无法检索变量?
    猜你喜欢
    • 2021-05-14
    • 2016-03-21
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 2020-01-07
    • 2022-10-14
    相关资源
    最近更新 更多