кнопка onClick = «javascript: calleoChat» хорошо работает на Html, но не в скрипте

#javascript

Вопрос:

в моем html есть кнопка, и она открывает скрипт чат-бота.

он отлично работает на html.

но это не работает в моем скрипте.

 ...
...
<section>
<button type="button" onclick="javascript:calleoChat('startChat')">Try it</button>
</section>
 
 <script>

//button creation
let btn = document.createElement("button");
btn.innerHTML = "Open Chat-Bot";

//call chat bot script, but it doesn't work
btn.onclick = "javascript:calleoChat('startChat')";
node.appendChild(btn);

//insert button to selected class
document.getElementsByClassName("AddToBagButton__container")[0].appendChild(node);

</script>
 

пожалуйста, обратитесь к моим примерам кодов выше, и, пожалуйста, дайте мне добрый совет, чтобы решить эту проблему.

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

1. ваши <scipt> теги находятся внизу html?

2. @callmenikk проблема не в этом, код добавляет кнопку. Если скрипт был до html, кнопка не добавляется. Теперь функциональность onclick не работает

3. node переменная также не существует, что AddToBagButton__container мы не знаем, поэтому код неясен

Ответ №1:

  1. В onclick вам не нужно добавлять «javscript: «, вы можете просто поместить код;

onclick="calleoChat('startChat')"

  1. В скрипте onclick вам не нужно заключать скрипт в кавычки;

btn.onclick = calleoChat('startChat');

  1. Вы также можете добавить событие в качестве eventlistener (таким образом, вы можете добавить больше):

btn.addEventListener("click", () => calleoChat("startChat"));

Дополнительная информация о событиях onclick: https://www.w3schools.com/jsref/event_onclick.asp

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

1. Спасибо за ваш замечательный отзыв. btn.addEventListener(«..») хорошо работает в моем коде