Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Убрать ошибку из консоли (https://javascript.ru/forum/events/82397-ubrat-oshibku-iz-konsoli.html)

Storm03 29.04.2021 10:24

Убрать ошибку из консоли
 
Есть такая функция:
function request(p,b,a) {
		var m = document.getElementById(b),
		d = new XMLHttpRequest;
		d.open("POST", p, !0);
		d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		d.addEventListener("readystatechange", function () {
			4 === d.readyState && 200 === d.status && (m.innerHTML = d.responseText);
			for (var scripts = m.getElementsByTagName("script"), i = 0; i < scripts.length; i++) {
				eval(scripts[i].innerText);
			}
			page_listeners();
		});
		d.send(a);
	}

Она загружает нужную страничку в нужный блок. Потом подключает оттуда js и вызывает установочную функцию с той страницы page_listeners().
Естественно, пока страничка не подгружена, эта функция отсутствует. Поэтому при загрузке базовой страницы интерпретатор выдаёт в консоль ошибку. К счастью, не блокируя при этом js и после подгрузки странички всё работает как надо. Но ведь это сейчас. Фик знает, как там дальше браузеры будут развиваться. Хотелось бы эту ошибку убрать.
Можно что-то придумать?

SuperZen 29.04.2021 14:22

eval ;) - взоржнул

https://webpack.js.org/guides/
https://webpack.js.org/guides/lazy-loading/
https://webpack.js.org/guides/code-splitting/

или
https://jakearchibald.com/2017/es-modules-in-browsers/

или
https://developer.mozilla.org/en-US/...Web_Components

или MVVM ченить типа react, vue, angular и т.д.

Aetae 29.04.2021 21:27

function request(p,b,a) {
	var m = document.getElementById(b),
	d = new XMLHttpRequest;
	d.open("POST", p, !0);
	d.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	d.addEventListener("readystatechange", function () {
		 if(4 === d.readyState && 200 === d.status) { 
			m.innerHTML = d.responseText;
			for (var scripts = m.getElementsByTagName("script"), i = 0; i < scripts.length; i++) {
				eval(scripts[i].innerText);
			}
			page_listeners();
		}
	});
	d.send(a);
}


Цитата:

Сообщение от SuperZen (Сообщение 536039)
eval ;) - взоржнул

Ну а чо, такое себе инкапсулирование.))

Storm03 30.04.2021 09:28

Цитата:

Сообщение от SuperZen
eval - взоржнул

Цитата:

Сообщение от SuperZen
ченить типа react, vue, angular и т.д.

Очень смешно.
""Наши люди в булошную на такси не ездят. (С)


Часовой пояс GMT +3, время: 01:38.