javascript - HTML 语音不适用于 Safari mac "TypeError"

标签 javascript html safari text-to-speech

HTML5 语音无法在 mac 10.0.1 上的 Safari 上运行,

我得到了错误,

TypeError: Argument 1 ('utterance') to SpeechSynthesis.speak must be an instance of SpeechSynthesisUtterance

它适用于 Chrome 和 Firefox,而且我很确定它曾经适用于 Safari...

var u = new SpeechSynthesisUtterance();
u.text = "hello world";
u.lang = "en";
window.speechSynthesis.speak(u);

最佳答案

好吧,终于明白了。

我有一些兼容代码来支持没有 html5 语音的浏览器,

if (SpeechSynthesisUtterance == undefined) {
    function SpeechSynthesisUtterance(text) {
        this.text = text;
    }
}

这适用于 Chrome 和 Firefox,但在 Safari 上似乎在解析脚本时会评估任何脚本中的任何函数,因此即使 SpeechSynthesisUtterance 已经存在,也会声明该函数。

我想我需要以不同的方式来做...

关于javascript - HTML 语音不适用于 Safari mac "TypeError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40773042/

相关文章:

javascript - Threejs vector.unproject( this.camera ) 未定义

javascript - 在类型中声明一个包含泛型的变量

javascript - jquery id 选择器与变量

javascript - 当内容出现时显示固定标题

javascript - 检测 iPad/iPhone 电源按钮和 iPad/iPhone 按钮

javascript - 在 VueJS/VuetifyJS 中复制选项卡转换之间的 WhatsApp 滑动

javascript - 使用 js 删除 <div> (无 JQuery)

javascript - 右列高度等于左列

audio - Safari 6.1 不会播放来自嵌入式 Soundcloud 小部件的音频

html - Safari 不承认 "required"属性。如何解决?