浏览器未聚焦时从网站复制到剪贴板
Copy to clipboard from website when browser is not focused
我想为网站创建一个非常小的扩展,它会自动将一些值复制到剪贴板。
问题是即使浏览器未聚焦,我也希望它复制值,例如:
- 我打开网站,我的扩展监听页面的变化
- 我打开了不同的应用程序
- 如果页面上发生了某些变化,那么扩展应该复制一些值
- 我正在使用的主应用程序仍然处于焦点状态,但我可以 CTRL+V 粘贴从网站复制的值,而无需 alt+tab
我尝试使用剪贴板API:
navigator.clipboard.writeText(...)
但我认为它不会起作用,因为浏览器必须集中注意力(我认为)。
当页面获得焦点时,复制工作正常。如果我尝试切换到不同的应用程序,当我的扩展试图复制值时我会得到一个异常:
DOMException: Document is not focused.
有什么办法吗?
出于安全原因,这是不可能的。很难想象有人想要这种行为...
This document has a lot of good info..
在 Chrome 中,您可以请求 clipboard-write
权限以在用户生成的小事件之外写入剪贴板,尽管它似乎没有 Chrome 限制您何时可以写入剪贴板。根据下面的文章,您可以从后台等写入Chrome中的剪贴板。更多信息请参见the note at the bottom of this section。
如果 Chrome 确实允许您从后台写入剪贴板,或者如果 window 未被选中,您可以使用 Page Visiblity API 启动复制事件"that" 具体 window 不可见。
您甚至可以使用 window.addEventListener('blur', function(){...})
处理程序进行测试等...
总而言之,这可能在 Chrome 中可行,但在 Firefox 中绝对不支持。
您可以查看浏览器之间的差异以及它们如何处理 clipboard related events/permissions/etc, here..
我想为网站创建一个非常小的扩展,它会自动将一些值复制到剪贴板。
问题是即使浏览器未聚焦,我也希望它复制值,例如:
- 我打开网站,我的扩展监听页面的变化
- 我打开了不同的应用程序
- 如果页面上发生了某些变化,那么扩展应该复制一些值
- 我正在使用的主应用程序仍然处于焦点状态,但我可以 CTRL+V 粘贴从网站复制的值,而无需 alt+tab
我尝试使用剪贴板API:
navigator.clipboard.writeText(...)
但我认为它不会起作用,因为浏览器必须集中注意力(我认为)。
当页面获得焦点时,复制工作正常。如果我尝试切换到不同的应用程序,当我的扩展试图复制值时我会得到一个异常:
DOMException: Document is not focused.
有什么办法吗?
出于安全原因,这是不可能的。很难想象有人想要这种行为...
This document has a lot of good info..
在 Chrome 中,您可以请求 clipboard-write
权限以在用户生成的小事件之外写入剪贴板,尽管它似乎没有 Chrome 限制您何时可以写入剪贴板。根据下面的文章,您可以从后台等写入Chrome中的剪贴板。更多信息请参见the note at the bottom of this section。
如果 Chrome 确实允许您从后台写入剪贴板,或者如果 window 未被选中,您可以使用 Page Visiblity API 启动复制事件"that" 具体 window 不可见。
您甚至可以使用 window.addEventListener('blur', function(){...})
处理程序进行测试等...
总而言之,这可能在 Chrome 中可行,但在 Firefox 中绝对不支持。
您可以查看浏览器之间的差异以及它们如何处理 clipboard related events/permissions/etc, here..