Похоже, что ваш <script>
тег добавлен , как вы ожидаете, но код внутри него не выполняется. Такая же ошибка возникает, если вы попытаетесь использовать document.head
(или любой другой элемент DOM, похоже). По какой-либо причине (возможно, соблюдение стандартов, возможная безопасность) встроенный код внутри блоков <script>
, добавленных через .innerHTML
, просто не запускается.
Однако у меня есть рабочий код, который создает аналогичные Функциональность:
var script = document.createElement('script');
script[(script.innerText===undefined?"textContent":"innerText")] = 'alert(1);';
document.documentElement.appendChild(script);
Здесь вы добавляете блок <script>
с documentElement.appendChild
и используете textContent
или innerText
для установки содержимого <script>
.