在HTML/JavaScript扩展中使用x-webkit-speech

eri*_*ric 11 html5 speech-recognition speech google-chrome-extension

我正在尝试x-webkit-speechGoogle Chrome中使用简单的HTML/JavaScript扩展程序中使用新功能.然而,我尝试并试图查看一堆示例,但无法成功调用该函数.我见过其他人这样做,我真的不知道为什么我不能.我将JavaScript代码放入一个单独的文件中,但是我使用<script src ="filename.js">这是我的x-webkit-speech的行....

<input id="speechInput" type="text" style="font-size:25px;" x-webkit-speech speech onwebkitspeechchange="onChange()" />
Run Code Online (Sandbox Code Playgroud)

现在,如果我onChange()改为alert(this.value),它会执行一个警告框,其中包含语音输入的值.所以我真的不明白为什么我不能只调用另一个函数.我不是最伟大的JavaScript或HTML程序员,但我研究了很多.每个人都以不同的方式定义,因为没有可靠的API,很难真正知道谁拥有正确的形式,因为它们似乎都以某种方式工作.

我的onChange功能看起来像

function onChange() { alert("in onChange"); } 
Run Code Online (Sandbox Code Playgroud)

我只是想测试并确保它能够实现这个功能,但我什么都没得到.

小智 8

我今天正在玩这个功能,实际上你的代码似乎没问题,对我有用.完整版将如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Speech</title>
</head>

<script type="text/javascript" charset="utf-8">
    function onChange() {
        alert('changed');
    }
</script>

<body>

    <input id="speechInput" type="text" style="font-size:25px;"
           x-webkit-speech onwebkitspeechchange="onChange()" />

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

虽然我确实注意到如果Chrome无法识别语音,onChange()就不会被调用.我正在使用Chrome 11.0.696.28测试版.如果您只定位基于webkit的浏览器(如Chrome或Safari),则无需使用语音属性.即使你把它留在了,它也不适用于Firefox 4.不确定IE9,因为我没有它.