javascript通过单击按钮将剪贴板内容粘贴到<input />字段中

时间:2018-05-14 04:26:34

标签: javascript tampermonkey

注1:我不拥有我尝试修改的网站,因此无法进行手动页面编辑。
注2:我需要一个PURE JavaScript( NOT jquery)解决方案。

我将使用Firefox v56的tampermonkey扩展程序修改网页。

说明:有一个网页上有<input>框。使用javascript代码,我设法在<input>框附近创建并插入按钮。因此,在插入按钮后,页面源代码如下所示:

<form id="some_form" method="post" name="some_form">
    <section id="content">
        <div class="row"></div>
        <div class="row"></div>
        <div class="row">
            <div>
                <div>
                    <input id="info" name="info" placeholder="Enter info" value="" type="text">
                </div>
            </div>
            <button id="btn_p">Paste</button>
        </div>
    </section>
</form>

我想要的是什么:点击<button>我要将剪贴板内容粘贴到<input>框中。 (我不想使用CTRL + V)

有什么问题:在mozilla.org,我找到了一个使用document.execCommand("paste")解释如何Interact with the clipboard的页面。我尝试使用我在其示例中找到的javascript代码并对其进行修改以满足我的需求。 JS代码如下所示:

function paste() {
  var pasteText = document.querySelector("#info");
  pasteText.focus();
  document.execCommand("paste");
}

document.querySelector("#btn_p").addEventListener("click", paste);

这应该有用,但是如果我理解正确,它只能在<textarea>标签之间而不是<input>字段之间插入剪贴板内容时才有效。

问题:是否有任何(纯)javascript代码可用于将剪贴板内容粘贴到<input>字段中(点击按钮),而不是粘贴它用CTRL + V键盘组合键?

提前感谢任何希望(希望)试图帮助我的人。

1 个答案:

答案 0 :(得分:0)

鉴于你的陈述“只能在<textarea>之间粘贴”是真的:

  1. 让您的脚本插入<textarea style="display: none" id="temp"></textarea>
  2. 使用您的工作代码将剪贴板粘贴到那里
  3. 现在您可以使用js .value(或者textareas的任何内容)获取数据
  4. 将值输入输入
  5. 听起来很简单?