Member 13624844 Ответов: 1

Как я могу разрешить JS работать на каждой запрошенной ajax странице?


Привет, ребята, я хочу знать, как я могу позволить JS эффективно включаться на каждой запрашиваемой странице ajax.

Это мои файлы, которые мне нужны, чтобы позволить JS работать через них.

page_1.php

<script>

document.addEventListener('DOMContentLoaded', function(){

var execute_sendAjax1 = document.getElementById('executeAjax1');
  execute_sendAjax1.addEventListener('click', sendAjax1);

function sendAjax1(){
var xhr1= new XMLHttpRequest();

xhr1.onreadystatechange = function(){
	if(xhr1.readyState === 4){
		document.getElementById('ajax1').innerHTML= xhr1.responseText;
	
    /*<Allow JS on the requested page>*/	
   
    /*</Allow JS on the requested page>*/
		
	}
}
	xhr1.open('POST','page_2.php');
	xhr1.send();
}

});

</script>

<button id='executeAjax1'>Execute 1</button>

<h1>Page 1</h1>

<div id='ajax1'></div>


page_2.php

<script>

var execute_sendAjax2 = document.getElementById('executeAjax2');
  execute_sendAjax2.addEventListener('click', sendAjax2);
  
function sendAjax2(){
var xhr2= new XMLHttpRequest();

xhr2.onreadystatechange = function(){
	if(xhr2.readyState === 4){
		document.getElementById('ajax2').innerHTML= xhr2.responseText;
	
	/*<Allow JS on the requested page>*/	
      
    /*</Allow JS on the requested page>*/
	
	}
}
	xhr2.open('POST','page_3.php');
	xhr2.send();
}

</script>

<button id='executeAjax2'>Execute 2</button>

<h1>Page 2</h1>

<div id='ajax2'></div>


page_3.php

<script>

var execute_sendAjax3 = document.getElementById('executeAjax3');
  execute_sendAjax3.addEventListener('click', sendAjax3);
  
function sendAjax3(){
var xhr3= new XMLHttpRequest();

xhr3.onreadystatechange = function(){
	if(xhr3.readyState === 4){
		document.getElementById('ajax3').innerHTML= xhr3.responseText;
		
	/*<Allow JS on the requested page>*/	
     
    /*</Allow JS on the requested page>*/
		
	}
}
	xhr3.open('POST','page_4.php');
	xhr3.send();
}

</script>

<button id='executeAjax3'>Execute 3</button>

<h1>Page 3</h1>

<div id='ajax3'></div>


page_4.php

<h1>Page 4</h1>


Что я уже пробовал:

Я давно искал в интернете на эту тему не так уж много простых для понимания источников.

Mohibur Rashid

Быстрый ответ: вам нужно добавить каждое возвращаемое значение к какому-то div или другому элементу типа блока, вы отправляете запрос, но не обрабатываете возвращаемое значение.

Длинный ответ: у меня сейчас нет времени, извините.
Короткий ответ вместо длинного ответа: это не очень хорошая модель. Вам нужно придумать лучший способ обращения.

F-ES Sitecore

Страница 2

ВАР execute_sendAjax2 = документ.метода getElementById('executeAjax2');

элемент "executeAjax2" еще не существует, поэтому sendAjax2 будет равен null. Переместите кнопку executeAjax2 над сценарием. Это работает на первой странице, потому что на первой странице вы используете событие загрузки страницы, поэтому код запускается после обработки html-кода.

1 Ответов

Рейтинг:
0

W∴ Balboos, GHB

Чтобы вы не зашли в очередной тупик (после следования предыдущим ответам и комментариям).

Если вы вернете javascript на страницу через AJAX, он не будет выполнен напрямую. Лучший способ, который вы можете сделать для этого, сохраняя его простым, - это заставить javascript выполняться как предварительно существующие вызов функции после возврата AJAX в вызове AJAX Вы можете изменить содержимое функции, которая будет выполняться (через AJAX), и она будет выполняться. Вы также можете иметь функцию "ничего не делать", но не оставляйте ее несуществующей.

Это избавит вас от многих разочарований в дальнейшем.