Javascript 为什么这种语音合成不能在onload上工作?

Javascript 为什么这种语音合成不能在onload上工作?,javascript,Javascript,试验场地在这里 在JS中,我试图让声音在加载时说话,但我只能在单击按钮时才能让它工作 window.onload = function() { var voiceElement = document.getElementById('welcome-voice'); voiceElement.speak(); }; var form = document.querySelector('#test-form'), element = document.querySelec

试验场地在这里

在JS中,我试图让声音在加载时说话,但我只能在单击按钮时才能让它工作

window.onload = function() {

    var voiceElement = document.getElementById('welcome-voice');
    voiceElement.speak();
};

var form = document.querySelector('#test-form'),
    element = document.querySelector('#welcome-voice');

form.addEventListener('submit', function(e) {
    e.preventDefault();
    element.speak();
});
在控制台里我得到了

未捕获类型错误:未定义不是函数

对于onload函数


为什么它不适用于onload?

文档。getElementById
接受id,而不是像
文档那样的选择器。querySelector
接受id。删除

可能需要在
窗口中添加所有代码。onload
。此外,您的站点正在发出mod安全警告。不确定mod安全错误。已更新URL以显式包含index.html,以查看这是否有帮助。onload的代码现在都在onload函数中。。类似的错误。我切换到使用setTimeout,现在一切都正常了。不确定那些Mod安全错误。。但是JS很好用。是的,谢谢你,当我从querySelector改过来的时候。但是我仍然收到一个错误:“UncaughtTypeError:undefined不是函数”哪一个,
.speak()
?我从没听说过。