首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

Javascript 从剪贴板获取内容 document.execCommand('Paste') 失败的问题

  •  
  •   raymanr · 31 天前 · 512 次点击
    这是一个创建于 31 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <body>
    <textarea onfocus="document.execCommand('Paste')"></textarea>
    </body>

    帮人弄个正则匹配生成表格的小程序 ,
    不想写 wpf ,
    就用 html 做了 ,
    body 就是这样 , 使用 file 协议访问 , chrome76 edge 都试过了 , 希望达到的效果是获取焦点时候就使用剪贴板的内容进行覆盖 , 但是始终不行 , 问题是出在哪里了呢 ?
    9 回复  |  直到 2019-10-12 14:06:30 +08:00
        1
    rogwan   31 天前 via iPhone
    浏览器为了安全,不支持 js,要用户触发。
        2
    nihiue   31 天前 via Android
    特权操作只能在特定的事件中触发,你改成 click 试试
        3
    cnanyi   31 天前
    paste 操作,只能主动触发,不能从代码调用了
        4
    raymanr   31 天前
    @nihiue
    @rogwan

    <button onclick="document.querySelector('#a').focus();document.execCommand('Paste');">aaa</button>
    <textarea id="a"></textarea>

    这样 ? 可以获取焦点 , 但是仍然没法 paste , 可以麻烦说具体点吗 ?
        5
    codehz   31 天前 via Android
        6
    gIrl1990   31 天前
    @codehz 咋不行。chrome 77 Uncaught (in promise) DOMException
    `navigator.clipboard.readText().then`
        7
    raymanr   31 天前
    @codehz
    chrome 76
    navigator.clipboard.readText().then(clipText => document.querySelector("#a").innerText = clipText).catch(err=>{console.log(err)})

    抛出个没有细节的
    DOMException

    这个试过 , 一直不知道为何都会抛出异常 , 所以才想用 execCommand , 结果也搞不好
        8
    love   31 天前
    浏览器可以得到用户的剪贴板?那不是太搞笑了吧,比如我经常复制密码,上个网站就能偷去?
        9
    raymanr   31 天前
    @love
    原来前面几位说的主动触发是这个意思么 ? 虽然 clipboard.readText() 让我也没看明白 , 不过算了.... 还是用 wpf 吧 , 太麻烦了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4021 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 08:15 · PVG 16:15 · LAX 00:15 · JFK 03:15
    ♥ Do have faith in what you're doing.