无法从HTML调用Javascript类
请看下面的代码 TTSScript.js无法从HTML调用Javascript类,javascript,html,function,web,Javascript,Html,Function,Web,请看下面的代码 TTSScript.js function TTS() { var msg = new SpeechSynthesisUtterance("yohan"); var voices = window.speechSynthesis.getVoices(); this.speakText = function() { window.speechSynthesis.speak(msg); }
function TTS()
{
var msg = new SpeechSynthesisUtterance("yohan");
var voices = window.speechSynthesis.getVoices();
this.speakText = function()
{
window.speechSynthesis.speak(msg);
}
}
index.html
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="/scripts/TTSScript.js"></script>
<script>
function speak()
{
var msg = new SpeechSynthesisUtterance('Hello World');
window.speechSynthesis.speak(msg);
}
function speak2()
{
var TTS = new TTS();
TTS.speakText();
}
</script>
</head>
<body>
<div><button onclick="speak2()">Click me</button></div>
</body>
</html>
我对JavaScript不太熟悉,您能告诉我为什么会出现此错误以及如何修复它吗?声明一个函数后,它的名称将变成一个(本地)保留字。这意味着创建同名变量可能会导致一些问题 我把你的密码换了
var TTS = new TTS();
TTS.speakText();
进入
错误消失了。我解决了您的问题。:
var msg=newspeechsynthesisutrance('Yohan');
window.speechSynthesis.speak(msg)代码>这是唯一的错误吗?您的浏览器中是否定义了SpeechSynthesisUtterance
?欢迎使用js小提琴,在其他情况下,它是一个“为什么这段代码不起作用?”question@TimSeguine:如您所见,我可以调用speak()
函数,没有问题,是的,SpeechSynthesisUtterance
已定义。@因为实际上我看不到这一点。直到现在你才说出来,在你的示例中也没有提到过。JSFIDDLE版本的文章:不是在机器中工作,而是在小提琴中工作。正如我提到的,TTS函数属于不同的脚本,而不是内部JS。不工作和出错是两码事。这是否解决了错误消息?如果是这样,您现在可以调试该函数,并找出是什么原因使其无法工作。
var TTS = new TTS();
TTS.speakText();
var tts = new TTS();
tts.speakText();