首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步剪贴板API -剪贴板更改事件未触发

异步剪贴板API -剪贴板更改事件未触发
EN

Stack Overflow用户
提问于 2021-05-10 15:10:59
回答 2查看 757关注 0票数 3

有人能挂起新异步剪贴板API的剪贴板事件吗?我正在尝试这样做:

代码语言:javascript
复制
navigator.clipboard.addEventListener('clipboardchange', function (e) {
                console.log("navigator clipboardchange");
            });

但它从不开火。

EN

回答 2

Stack Overflow用户

发布于 2021-12-20 09:13:36

至少对于chrome还没有实现,有关更多细节,请参见这只虫子

读了这些评论后,似乎确实存在着实施它的压力,否则你将不得不投票

票数 1
EN

Stack Overflow用户

发布于 2022-11-22 17:03:33

我知道它并没有真正回答这个问题,但这也是一个同样的问题:

代码语言:javascript
复制
async startClipboardPoll () {
  try {
    let clipboardContent;

    // Comment the following line
    // if you want to run <CODE> when clipboard change from other pages
    // (when the user focus back on your app)
    window.onfocus = async function () { clipboardContent = await navigator.clipboard.readText() }

    while (true) {
      await new Promise(r => setTimeout(r, 500)) // wait
      const previousContent = clipboardContent
      try {
        clipboardContent = await navigator.clipboard.readText()
      } catch (e) {
        // This function may fail if you focus another webpage
        // just ignoring and continuing.
        continue
      }
      if (previousContent == undefined) {
        continue
      }
      if (clipboardContent !== previousContent) {
        /*******************
         * Clipboard changed !
         * <CODE> here
         * `clipboardContent` is the clipboard content
         ******************/
      }
    }
  } catch (e) {
    console.warn('something went wrong');
    // maybe warn the user here this functionality is not available
  }
}

然后在代码中的某个地方调用此函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67473023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档