[英]“Illegal Invocation” error on simple script
我想搞亂語音識別API,所以我從簡單的頁面開始,點擊body元素開始識別。 我的scripts.js文件是:
var recognition = new window.webkitSpeechRecognition();
document.body.addEventListener("click", recognition.start, false);
現在當我點擊body元素的任何地方時,我在Chrome控制台中出現了奇怪的錯誤:
Uncaught TypeError: Illegal invocation
它指的是我的HTML代碼的第一行。 我的HTML文件是:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<script src="scripts.js"></script>
</body>
</html>
我該如何解決這個奇怪的錯誤?
你失去了背景:
document.body.addEventListener("click", recognition.start, false);
等於:
var start = recognition.start;
document.body.addEventListener("click", start, false);
所以在開始之內 , 這將引用窗口 ,窗口不能說話。 要解決它,綁定:
document.body.addEventListener("click", recognition.start.bind(recognition), false);
或使用中間的函數:
document.body.addEventListener("click", _=>recognition.start(), false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.