Замена тега script из js

На странице js код заключен в тег "script"

Возможно ли из js, заменить данный тег. Не выполняя поиск по документу и не присваивая никаких индетификаторов.

То есть заменить тег так, словно обращаемся из кода(в данном теге) к данному тегу как к родителю?


Ответы (1 шт):

Автор решения: OPTIMUS PRIME

document.currentScript указывает на тег <script>, внутри которого был выполнен.

<div>1</div>

<script>
  console.log(document.currentScript.outerHTML);
  document.currentScript.outerHTML = '<div>2</div>';  
</script>

<div>3</div>

Если порядок скриптов на странице заранее известен, можно использовать селектор тега:

<script>1;</script>
<script>2;</script>
<script>
  let script = document.querySelectorAll('script');
  
  console.log( script[0] );
  console.log( script[1] );
  console.log( script[2] );

  script[3].parentNode.removeChild( script[3] ); // Удален.
</script>

Примечание: От удаления тега скрипт не перестанет работать.

→ Ссылка