Это очень распространенный вопрос, связанный с AJAX, но я не могу найти ни одного для моего случая, потому что большинство из них использовали jQuery и другие причины.Возможно, мой не эффективен / не рекомендуется, но в любом случае, здесь мы идем.
У меня есть кнопка [скажем, у нас есть ссылка на нее, названная btn
].
Он слушает событие щелчка.Когда пользователь нажимает кнопку, он отправляет AJAX-запрос в файл .txt, находящийся в той же директории, в которой находится основной файл HTML / CSS / JS.Давайте назовем его test.txt
.
. Теперь он изменяет innerHTML <html>
(не заголовок / тело, html), а innerHTML является ответом на запрос AJAX.
test.txt
содержит HTML-код.И в этом HTML-коде есть <script src="another-js-file.js">
.Это не выполняется, вот в чем проблема.
Прежде чем вы кричите на меня INNERHTML НЕ ВЫПОЛНЯЕТ НИКАКИХ СКРИПТОВ Я это знаю.Я видел другие ответы, в которых говорилось о создании тега <script>
внутри div, который находится внутри еще одного div, но, похоже, он не работает с внешними js-файлами, и решения действительно использовали innerHTML.
ХорошоВот эскиз:
btn.onclick = function(){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState = XMLHttpRequest.DONE){
document.documentElement.innerHTML = this.responseText;
}
}
xhr.open("GET", "./test.txt");
xhr.send();
}
Где test.txt
содержит:
<head>
<title>Document</title>
<link rel="stylesheet" href="test.css">
<script src="another-js-file.js"></script>
</head>
<body>
<h1>Hello World!</h1>
</body>
Нет jQuery.