如何通过Tampermonkey在用户与页面交互前播放提示音?
如何通过Tampermonkey在页面交互前播放提示音?
我希望通过Tampermonkey在自己与页面产生交互之前播放提示音,以此告知我页面上有感兴趣的内容。我最初尝试的代码如下:
function playSound() { try { var player = document.createElement('audio'); player.preload = 'auto'; player.src = AUDIO; // base64 encoded audio player.play(); console.log('playing sound: successful'); } catch(e) { console.log('playing sound: failed'); } }
但这段代码会被Chrome/浏览器拦截,原因如下:
- 代码运行在页面上下文环境中
- 用户尚未与页面产生任何交互
根据浏览器规则,在用户与页面交互前,音频和非静音视频无法自动播放。请问有没有办法通过Tampermonkey播放音频,且不依赖页面上下文环境?
Windows系统解决方案
- 打开注册表编辑器(regedit)
- 导航至
Computer\HKEY_CURRENT_USER\SOFTWARE\Policies\Google\Chrome\AutoplayAllowlist,所有不存在的项都需要创建 - 创建名为
1的文本值,添加允许自动播放的URL,必须是Tampermonkey脚本运行的网站,例如https://www.google.com - 如果脚本在多个URL上运行,可添加更多条目,比如
2对应https://www.stackoverflow.com、3对应https://en.wikipedia.org - 关闭Chrome并重新启动,虽然相关文档说明这一步并非必须,但亲测只有重启后才生效
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

