Тайм-аут Javascript затем раскрывает html

#javascript

Вопрос:

Я бы хотел, чтобы кнопка запускала таймер, а затем открывала другую кнопку через 8 секунд. Этот код не работает.

 <button id="wait" onclick="setTimeout(waitFunction, 8000)">Wait 8 seconds</button>
<script>
  function waitFunction() {
    document.getElementById("wait").innerHTML = "<a href=" / confirm "><button>RevealButton</button></a>";
  }
</script>

 

Комментарии:

1. Вы нарушаете свою строку здесь: "<a href=" / confirm "> — ваша консоль должна была сообщить об этой ошибке

Ответ №1:

у вас есть несоответствующая цитата в href — также хорошая идея убрать тайм-ауты:

 <button id="wait" onclick="waitFunction()">Wait 8 seconds</button>
<script>
function waitFunction() {
  clearTimeout(window.waitFunctionTimeout);
  window.waitFunctionTimeout = setTimeout(function(){
  document.getElementById("wait").innerHTML = "<a href=' / confirm '><button>RevealButton</button></a>";
  },8000);
    
  }
</script> 

Ответ №2:

Вы можете добиться этого с помощью функции #setTimeout. См. Пример:

https://jsfiddle.net/tdzckwsb/4/

https://www.w3schools.com/jsreF/met_win_settimeout.asp

 setTimeout(function(){
  // Do something here
}, timeout in milliseconds);
 

Ответ №3:

Если вы хотите поместить текст внутри href атрибута, вы должны вставить весь текст, ' например:

'<a href = "/confirm"><button>RevealButton</button></a>'

Вы можете свободно использовать " в '