при динамическом добавлении разметки со
script
, его содержимое не выполняется, универсальным способом будет пройтись по добавленному куску разметки, найти все такие элементы и потом пересоздать их заменив новыми оригиналы:
element.innerHTML = /* разметка */
for (const sourceElement of element.querySelectorAll('script')) {
const resultElement = document.createElement('script');
resultElement.textContent = sourceElement.textContent;
for (const attribute of sourceElement.getAttributeNames()) {
resultElement.setAttribute(attribute, sourceElement.getAttribute(attribute));
}
sourceElement.replaceWith(resultElement);
}