Адаптация кода JavaScript для преобразования текста в речь и потоковых меток

Я настраиваю новый ящик оповещений с сайта streamlabs.com и хочу настроить его: когда появляется новый подписчик, появляется текст в тексте имени подписчика! Но у меня есть время выучить javascript или любые другие языки.

Я нашел это https://codepen.io/sgestrella/pen/MxJLXm , что близко к тому, что я хочу, но когда я копирую / вставляю код в https: / /streamlabs.com/dashboard#/alertbox, это не сработало! Поэтому я полагаю, что мне нужно изменить какой-то код, но я не знаю, как

Код:

{userMessage}
let speakBtn, txtFld;
function init(){
  speakBtn = qs("#speakBtn");
  txtFld = qs("#txtFld");
  speakBtn.addEventListener("click",talk,false);
  if (!window.speechSynthesis) {
    speakBtn.disabled = true;
    qs("#warning").style.display = "block";
  }
}
function talk(){
  let u = new SpeechSynthesisUtterance();
  u.text = txtFld.value;
  speechSynthesis.speak(u);
}
// Reusable utility functions
function qs(selectorText){
  //saves lots of typing for those who eschew Jquery
  return document.querySelector(selectorText);
}
document.addEventListener('DOMContentLoaded', function (e) {
  try {init();} catch (error){
    console.log("Data didn't load", error);}
});

Я ожидаю, что код запустится сам по себе, когда я запустить тест, но на самом деле он ничего не делает.

0
задан fbfbfbfbfb 27 June 2019 в 17:59
поделиться

1 ответ

В первую очередь, попытайтесь помнить, что Вы не можете использовать тот же идентификатор больше чем для одного элемента, так как идентификатор уникален. Так измените эту строку:

<div id="txtFld">{userMessage}</div>

Что касается Вашего вопроса: для инициирования отделения textContent изменение, необходимо читать это . Теперь, если мы объединим все это вместе, то мы получим что-то как этот:

<div id="example"></div>
<script>
window.addEventListener('load', function () {
  var element = document.getElementById('example');

  var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
  var observer = new MutationObserver(talk);
  observer.observe(element, {
      childList: true
  });

  setTimeout(function(){
    element.textContent = 'Hello World!';
  }, 1000);

  setTimeout(function(){
    element.textContent = 'Hello Space!';
  }, 2000);

function talk(){
  let u = new SpeechSynthesisUtterance();
  u.text = element.textContent;
  speechSynthesis.speak(u);
}

});
</script>

можно считать больше здесь

Hope, это поместило Вас на правильный путь, и удачи!

я сделал codepen, который можно играть с здесь .

0
ответ дан A. Meshu 3 July 2019 в 04:12
поделиться
  • 1
    Этот ответ, вероятно, заслуживает больше голосов. Строковый метод является самым устойчивым путем. Этому не нужна попытка/кроме. – ChaimG 3 December 2015 в 02:59
Другие вопросы по тегам:

Похожие вопросы: