Как правильно подгрузить js файл через javascript
Добрый день.
Сделал файл test.js: function mF() {document.write('Hello');} И html. Так работает: <div id="jsp"><script src="test.js"></script></div> <script>mF();</script> А так не работает: <div id="jsp"></div> <script>jsp.innerHTML="<script src='test.js'></"+"script>";</script> <script>mF();</script> Как правильно подгрузить js файл через javascript, чтобы вывелась надпись Hello? Заранее благодарен за ответ. |
У вас две фундаментальные ошибки.
1. innerHTML не исполняет скрипты. Используйте DOM методы для добавления скрипта на страницу. 2. document.write не работает после того как документ уже загружен. Используйте любые иные методы для вывода текста. |
"Используйте DOM методы для добавления скрипта на страницу":
правильно ли я понял, что добавлять файл со скриптом необходимо так: <script>const script = document.createElement('script'); script.src = 'test.js'; document.head.appendChild(script);</script> |
Цитата:
|
Цитата:
function mF() {jsp.innerHTML='Hello';} а test.html такой: <!doctype html> <html> <head> <meta charset="utf-8"> <title>Документ без названия</title> </head> <body> <script>const script = document.createElement('script'); script.src = 'test.js'; document.head.appendChild(script);</script> <div id="jsp"></div> <script>mF();</script> </body> </html> И всё равно не работает. |
alanat,
строку 12 либо перенесите в test.js, либо так <!doctype html> <html> <head> <meta charset="utf-8"> <title>Документ без названия</title> </head> <body> <script> function abracadabra() { mF(); }</script> <script>const script = document.createElement('script'); script.src = 'test.js'; script.onload = abracadabra; document.head.appendChild(script);</script> <div id="jsp"></div> </body> </html> |
Цитата:
Если честно, то уже отчаялся считать мой вопрос решаемым. |
Часовой пояс GMT +3, время: 13:34. |