You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用纯JavaScript实现点击按钮将剪贴板内容粘贴至<input>框?

嘿,我来帮你解决这个粘贴问题!首先要纠正你一个小误解:document.execCommand("paste")完全可以作用于<input>文本输入框,并不是只能用在<textarea>上。你的核心思路是对的,可能只是需要一些小调整来适配Firefox 56和Tampermonkey的环境。

调整后的可运行纯JavaScript代码

因为你是在Tampermonkey里运行脚本,最好加上完整的脚本头部,同时确保元素加载完成后再绑定事件(避免找不到按钮或输入框):

// ==UserScript==
// @name         Paste to Input Button
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Paste clipboard content to #info input when #btn_p is clicked
// @author       You
// @match        https://your-target-website-url.com/*  // 替换成你要修改的网页URL
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 辅助函数:等待目标元素加载完成
    function waitForElement(selector, callback) {
        const element = document.querySelector(selector);
        if (element) {
            callback(element);
        } else {
            setTimeout(() => waitForElement(selector, callback), 100);
        }
    }

    // 粘贴逻辑
    function handlePasteClick() {
        const inputField = document.querySelector("#info");
        if (!inputField) {
            console.error("找不到#info输入框");
            return;
        }

        inputField.focus(); // 必须让输入框获得焦点才能执行粘贴
        const pasteSuccess = document.execCommand("paste");
        
        if (pasteSuccess) {
            console.log("剪贴板内容已成功粘贴到输入框!");
        } else {
            console.error("粘贴失败:可能是浏览器权限限制或输入框不可编辑");
        }
    }

    // 等待按钮出现后绑定点击事件
    waitForElement("#btn_p", (pasteButton) => {
        pasteButton.addEventListener("click", handlePasteClick);
    });
})();

关键细节说明

  • 元素加载时机:网页元素可能不是立即加载完成的,所以用waitForElement函数确保#btn_p按钮存在后再绑定点击事件,这在Tampermonkey脚本里是很常见的处理方式,避免出现"Cannot read properties of null"的错误。
  • 焦点要求:执行execCommand("paste")前必须让目标输入框获得焦点,这是浏览器的安全限制,你的原代码里已经做了这一步,是对的。
  • 权限与兼容性:在Firefox 56中,document.execCommand("paste")只有在**用户主动触发的事件(比如按钮点击)**中才能执行,而你的按钮点击正好满足这个条件,所以不需要额外配置权限(@grant none即可),Firefox 56完全支持这个API。

如果你之前的代码没生效,大概率是因为脚本执行时按钮还没被插入到页面中,用上面的等待函数就能解决这个问题。

内容的提问来源于stack exchange,提问作者sarah997

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:32:17