Загрузка js файлов после загрузки страницы
Есть не большая проблема,
Загрузка страниц на моем сайте происходит в 2 этапа, изначально загружается шапка и вставляется на страницу, затем тело страницы. Получание страницы происходит через ajax. Проблема заключается в том что необходимо подгружать js файлы после того как загрузится тело, однако есть вставить это <script type="text/javascript" src="assets/scripts/tagsinput.js"></script> в файле где находится тело страницы, то после того как ajax получит страницу и вставит ее на сайт никаких подгрузок не происходит. Как можно было бы исправить это?
Ответы (1 шт):
Вы можете же просто использовать jquery для подгрузки документов:
Логика следующая:
- Вы загружаете страницу.
- На неё загружаете header.
- Загружаете тело страницы.
- Отслеживаете загрузку страницы и добавляете в загруженный документ новый html, который содержит ссылки на скрипты.
Например первый файл help48.html:
<script
src="https://code.jquery.com/jquery-3.4.1.js"
integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin="anonymous"></script>
<style>
.main{
width: 200px;
height: 200px;
background: #003eff;
}
</style>
<div class="main">
<div class="add">
</div></div>
<button id="but">Добавить файл</button>
<script language="JavaScript">
$(window).on('load', function () { // При загрузке документа
$('#but').on('click', function () { // Отслеживаем нажатие кнопки
$('.add').load('help49.html'); // Подгружаем файл в поле с классом add
})
})
</script>
Второй файл, который подгружаем - help49.html:
<script src="help59.js"></script>
Третий файл сам js - help59.js:
let z = document.getElementsByClassName('add')[0];
z.innerText = 'zzzzzzz';
Нажимаем кнопку подгрузки другого документа(результат нажатия):

Как видим из результата - данные подгружаются корректно и сразу выполняются.
