вопрос
Все привет! решил прибомбить к строке быстрого поиска голосовой набор
форма поиска в main.tpl
файл libs.js
И все бы круто, нажимаешь кнопку - говоришь - текст вписывается в форму поиска - НО блин не появляются результаты быстрого поиска не фига - ставишь пробел - все круто появляется - вводишь вручную - тоже все круто
помогите решить проблемку!
при голосовом вводе
PS - после голосового ввода любое нажатие на клаве сразу срабатывает и показывает результаты
при ручном вводе
форма поиска в main.tpl
<form id="q_search" class="top--serch-forma" method="post">
<div class="q_search">
<form id="voiceSearch" method="get" action="https://www.google.com/search">
<input id="story" name="story" placeholder="События, рестораны, кафе, бары, интересные места..." type="search">
<i title="Talk to me" onclick="startDictation()" class="fa fa-microphone" aria-hidden="true"></i>
</form>
<button class="top_search_btn" type="submit" title="Найти">Найти</button>
</div>
<input type="hidden" name="do" value="search">
<input type="hidden" name="subaction" value="search">
</form>
файл libs.js
function startDictation() {
if (window.hasOwnProperty('webkitSpeechRecognition')) {
var recognition = new webkitSpeechRecognition();
recognition.continuous = false;
recognition.interimResults = true;
recognition.lang = "ru-RU";
recognition.start();
document.getElementsByName('story')[0].focus();
recognition.onresult = function(e) {
document.getElementById('story').value
= e.results[0][0].transcript;
recognition.stop();
// document.getElementById('voiceSearch').submit();
};
recognition.onspeechend = function() {
recognition.stop();
}
recognition.onerror = function(e) {
recognition.stop();
}
}
}
И все бы круто, нажимаешь кнопку - говоришь - текст вписывается в форму поиска - НО блин не появляются результаты быстрого поиска не фига - ставишь пробел - все круто появляется - вводишь вручную - тоже все круто
помогите решить проблемку!
при голосовом вводе
PS - после голосового ввода любое нажатие на клаве сразу срабатывает и показывает результаты
при ручном вводе
Если посмотреть код js DLE, а именно функцию FastSearch(), то можно заметить, что она цепляет поле поиска на событие input, значит нам нужно вставить текст и затригерить это событие.
Для теста можно закинуть этот код в консоль здесь, на dle-faq.
$('#story').val('Мой текст').trigger('input');
Для теста можно закинуть этот код в консоль здесь, на dle-faq.