Использовать x-webkit-речь в расширении HTML/JavaScript

Я пытаюсь использовать новую функцию x-webkit-speech в простом расширении HTML/JavaScript в Google Chrome. Я, однако, попытался и попытался взглянуть на кучу примеров и не смог заставить его успешно вызвать функцию. Я видел, как это делают другие люди, и я не понимаю, почему я не могу. Я поместил код JavaScript в отдельный файл, но я включаю использование < script src= "filename.js" > это моя строка для x-webkit-speech....

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

Теперь, если я изменяю onChange() на alert(this.value), он запускает окно предупреждения со значением ввода речи в нем. Поэтому я действительно не понимаю, почему я не могу просто вызвать другую функцию. Я не лучший программист на JavaScript или HTML, но я много разбираюсь в этом. Все определяют вещи по-разному, и поскольку нет твердого API, трудно действительно знать, кто имеет правильную форму, потому что все они как-то работают.

Моя функция onChange выглядит как

function onChange() { alert("in onChange"); } 

Я просто пытаюсь проверить и убедиться, что это будет функция, но я ничего не получаю.

Ответ 1

Сегодня я играл с этой функцией, и на самом деле ваш код выглядит нормально и работает для меня. Полная версия будет следующей:

<!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>

Хотя я заметил, что onChange() не вызывается, если Chrome не распознает речь. Я использую бета-версию Chrome 11.0.696.28. Также речевой атрибут не нужен, если вы настроите таргетинг только на веб-браузеры, такие как Chrome или Safari. И даже если вы его оставите, он не работает с Firefox 4. Не уверен в IE9, так как у меня его нет.

Ответ 2

if (document.createElement("input").webkitSpeech === undefined) {
    alert("Speech input is not supported in your browser.");
}

вы можете использовать этот код

Ответ 3

Не волнуйтесь, просто попробуйте следовать, это должно помочь

<!DOCTYPE html> 
<html>
<meta charset="utf-8" />  
<title>Speech Input Test</title>  
<h2>Speech Input Test</h2>
<input id="speech-input-field" type="text" x-webkit-speech="">
<html>