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

非HTTPS内部Web应用自动化:无用户输入粘贴方案咨询

可行解决方案

针对你在内部HTTP应用中无法使用剪贴板API、document.execCommand('paste')失效,且想完全消除用户输入实现自动化的需求,以下是几个直接可用的方案:

方案1:直接赋值+触发输入事件

如果目标输入框是普通的<input>或<textarea>,直接设置value后手动触发应用依赖的事件(比如input或change),就能绕过剪贴板操作完成填充,然后自动触发保存:

function RD01() {
    // 填充Activity
    let actElement = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_SelectActivity1_HfSelectedId');
    if (actElement) actElement.value = '154';

    // 填充Employee
    let emplElement = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_SelectEmployee_HfSelectedId');
    if (emplElement) emplElement.value = '%7B%22id%22%3A%221386%22%2C%22type%22%3A%22Employee%22%7D';

    // 填充描述并触发保存
    let aboutElement = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_info_About');
    if (aboutElement) {
        // 替换成你实际要填充的文本内容
        const targetText = "这里是原本需要粘贴的文本";
        aboutElement.value = targetText;

        // 触发input事件,确保应用内部感知到值变化(部分应用依赖该事件)
        aboutElement.dispatchEvent(new Event('input', { bubbles: true }));

        // 自动点击保存按钮
        let saveButton = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_BtnSaveAsWorking');
        if (saveButton) saveButton.click();
    }
}

方案2:针对富文本编辑器(contenteditable)的处理

如果aboutElement是contenteditable类型的富文本容器,直接设置文本/HTML内容后触发事件:

// 替换方案1中aboutElement的处理部分
if (aboutElement) {
    const targetText = "这里是原本需要粘贴的文本";
    // 纯文本用textContent,富文本内容用innerHTML
    aboutElement.textContent = targetText;
    // 触发事件让应用感知内容变化
    aboutElement.dispatchEvent(new Event('input', { bubbles: true }));
    
    // 自动保存
    let saveButton = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_BtnSaveAsWorking');
    if (saveButton) saveButton.click();
}

方案3:模拟完整用户交互(极端场景)

如果上述方案无效,说明应用有严格的交互校验,可以模拟聚焦、选中、输入的完整流程:

// 替换方案1中aboutElement的处理部分
if (aboutElement) {
    const targetText = "这里是原本需要粘贴的文本";
    // 聚焦输入框
    aboutElement.focus();
    // 选中现有内容(实现覆盖效果)
    aboutElement.select();
    // 执行插入文本操作
    document.execCommand('insertText', false, targetText);
    
    // 触发事件+自动保存
    aboutElement.dispatchEvent(new Event('input', { bubbles: true }));
    let saveButton = document.getElementById('ctl00_ctl00_CphContentWrapper_CphMainContent_DocumentEditor_BtnSaveAsWorking');
    if (saveButton) saveButton.click();
}

关键说明

  • 所有方案均无需依赖剪贴板操作,完全消除用户手动粘贴步骤;
  • 核心是确保应用能感知输入框的内容变化,input事件是最常用的触发方式,部分应用可能监听change事件,可替换尝试;
  • 内部应用建议搭配油猴脚本(Tampermonkey)运行代码,方便快速测试和日常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 21:20:55