我希望能够在创建新的SpeechRecognition
对象后在SpeechRecognition
中设置函数onbroadcast
,以便在满足特定条件时可以在内部调用此函数。设置可在内部调用的外部对象函数
我希望能够以与您在webkitSpeechRecognition
中设置类似onerror
之类的方式进行设置。当我在开发人员工具中查看onerror
时,看起来它可能通过某种类型的getter/setter完成,如here所述,但我无法确定。
这可能吗?
recognition.js:
var SpeechRecognition = function() {
var recognitionObject = new webkitSpeechRecognition();
recognitionObject.onresult = function (event) {
if(event.results.length > 0) {
if (onbroadcast !== null && onbroadcast === 'function') {
onbroadcast('there are results');
}
}
}
recognitionObject.onerror = function (event) {
console.log(event);
}
recognitionObject.onend = function (event) {
console.log(event);
}
recognitionObject.start();
}
SpeechRecognition.prototype.onbroadcast = null;
main.js:
var sr = new SpeechRecognition();
sr.onbroadcast = function(msg) {
document.getElementById('id') = msg;
}
'onupdateraw'和'onbroadcast'是未声明的变量,你是什么意思?我想你想引用你的'SpeechRecognition'实例的'.onbroadcast' **属性** - 通常用'this' [但不是在回调中](http://stackoverflow.com/q/20279484/1048572 ) 像这儿。 – Bergi
对不起 - 'onupdateraw'是一个错字。 – millarnui
我想以某种方式从对象外部设置'onbroadcast',但是从内部调用它(如果它被设置) – millarnui