无法从 HTML 调用 Javascript class
Unable to call a Javascript class from HTML
请看下面的代码
TTSScript.js
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>
不幸的是,当我点击 html 页面中的按钮时,出现错误。在下面。
Uncaught TypeError: undefined is not a function (13:42:13:817 | error, javascript)
at speak2 (public_html/index.html:23:26)
at onclick (public_html/index.html:31:126)
我对 JavaScript 不太熟悉,能否请您告诉我为什么会出现此错误以及如何解决?
声明一个函数后,它的名字就变成了一个(本地)保留的词。这意味着创建一个具有相同名称的变量可能会导致一些问题。
我把你的代码改了
var TTS = new TTS();
TTS.speakText();
进入
var tts = new TTS();
tts.speakText();
然后错误消失了。
我解决了你的问题..:
不要使用所有大写名称作为变量
var tts = new TTS();
tts.speakText();
正确的通话是在fiddle
var msg = new SpeechSynthesisUtterance('Yohan');
window.speechSynthesis.speak(msg);
请看下面的代码
TTSScript.js
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>
不幸的是,当我点击 html 页面中的按钮时,出现错误。在下面。
Uncaught TypeError: undefined is not a function (13:42:13:817 | error, javascript)
at speak2 (public_html/index.html:23:26)
at onclick (public_html/index.html:31:126)
我对 JavaScript 不太熟悉,能否请您告诉我为什么会出现此错误以及如何解决?
声明一个函数后,它的名字就变成了一个(本地)保留的词。这意味着创建一个具有相同名称的变量可能会导致一些问题。
我把你的代码改了
var TTS = new TTS();
TTS.speakText();
进入
var tts = new TTS();
tts.speakText();
然后错误消失了。
我解决了你的问题..:
不要使用所有大写名称作为变量
var tts = new TTS(); tts.speakText();
正确的通话是在fiddle
var msg = new SpeechSynthesisUtterance('Yohan');
window.speechSynthesis.speak(msg);