检测另一个浏览器选项卡是否正在使用 speechRecognition

Detect if another browser tab is using speechRecognition

是否可以判断另一个 Chrome 选项卡是否正在使用 webkitSpeechRecognition?

如果您在另一个选项卡正在使用 webkitSpeechRecognition 时尝试使用它,它将抛出一个错误 "aborted" 而没有任何消息。我想知道 webkitSpeechRecognition 是否在另一个选项卡中打开,如果是,则抛出一个可以通知用户的更好的错误。

除非你的客户在同一个网站上(你可以通过在数据库中记录 ip/browserprint 并通过 json 请求来检查)你不能这样做。

跨域保护已生效,让您对其他选项卡或框架中发生的情况了如指掌。

我正在为 chrome 使用 webkitSpeechRecognition(不适用于 FF)并且我遇到了多个 Chrome 选项卡等相同的问题。在浏览器实现更好的错误消息之前,一个对我有用的临时解决方案:

  • 您需要使用 Chrome 来检测选项卡何时聚焦或不聚焦 Javascript.

  • 像这样制作 javascript 代码

    isChromium = window.chrome; if(isChromium) { if (window.addEventListener) { // bind focus event window.addEventListener("focus", function (event) { console.log("Browser tab focus.."); recognition.stop();// to avoid error recognition.start(); }, false); window.addEventListener("blur", function (event) { console.log("Browser tab blur.."); recognition.stop(); }, false); } }