1
rogwan 2019-10-12 12:16:47 +08:00 via iPhone
浏览器为了安全,不支持 js,要用户触发。
|
2
nihiue 2019-10-12 12:17:25 +08:00 via Android
特权操作只能在特定的事件中触发,你改成 click 试试
|
3
cnanyi 2019-10-12 12:31:46 +08:00
paste 操作,只能主动触发,不能从代码调用了
|
4
raymanr OP |
5
codehz 2019-10-12 12:45:19 +08:00 via Android
|
6
gIrl1990 2019-10-12 12:54:01 +08:00
@codehz 咋不行。chrome 77 Uncaught (in promise) DOMException
`navigator.clipboard.readText().then` |
7
raymanr OP @codehz
chrome 76 navigator.clipboard.readText().then(clipText => document.querySelector("#a").innerText = clipText).catch(err=>{console.log(err)}) 抛出个没有细节的 DOMException 这个试过 , 一直不知道为何都会抛出异常 , 所以才想用 execCommand , 结果也搞不好 |
8
love 2019-10-12 13:42:29 +08:00
浏览器可以得到用户的剪贴板?那不是太搞笑了吧,比如我经常复制密码,上个网站就能偷去?
|
9
raymanr OP @love
原来前面几位说的主动触发是这个意思么 ? 虽然 clipboard.readText() 让我也没看明白 , 不过算了.... 还是用 wpf 吧 , 太麻烦了 |
10
chosan 2021-01-11 09:28:51 +08:00
navigator.clipboard.readText() 要在 https 下才行,不然 navigator.clipboard 为 undefined,另外也不能通过在控制台执行,它需要页面为 active 状态,在控制台的时候相当于页面 deactive 了,因此可以在控制台输入以下代码,然后快速点击页面内部激活页面:
setTimeout(async () => { const text = await navigator.clipboard.readText(); console.log(text); }, 4000); |
11
chosan 2021-01-11 09:30:47 +08:00
|