PageSourceSearch

https://deltapool.ru/g/templates/shop2/2.130.2/default-3/js/init_smart_search.js

js deltapool.ru collected 2026-10-04 22:16:04 UTC 3,083 bytes, 113 lines download raw bytes

1(function(){
2
3	var smartSearchAdd = new Event(`smartSearchAdded`, {bubbles: true});
4
5	async function get_data_smart_search() {
6		let url = new URL(window.location.href);
7		
8		var main_url = url.origin + shop2.uri + '/search' + '?search_smart_only=1';
9		
10		let response = await fetch( main_url,{credentials: 'same-origin',} );
11		let text_data = await response.text();
12		var parser = new DOMParser();
13		
14		if (response.status == '404') {
15			return false
16		}
17		
18		var doc_data = parser.parseFromString(text_data, "text/html");
19		
20		return doc_data;
21	}
22		var count_func = 0;
23
24		function load_scripts( array_path ) {
25			if( !array_path[ count_func ] ){
26				return;
27			}	
28			var script = document.createElement('script');
29			script.src = array_path[ count_func ];
30			document.body.appendChild(script);
31			
32			script.onload = function(){
33				load_scripts(array_path);
34			}
35			count_func++
36		}
37
38	
39	var doneInteraction = false; // переключатель
40
41	function init_smart_search() {
42		if( doneInteraction ){
43			document.removeEventListener('scroll', init_smart_search );
44			document.removeEventListener('mousemove', init_smart_search );
45			document.removeEventListener('touchstart', init_smart_search );
46			document.removeEventListener('keydown', init_smart_search );
47			document.removeEventListener('click', init_smart_search );
48			return;
49		}
50			
51		get_data_smart_search().then(function(data){
52		
53			if(data){
54				
55				var search_block = document.querySelector('#search-app-container');
56
57				if( !search_block ){
58					console.error('Умный поиск, блок с айди #search-app-container не найден');
59					return;
60				}
61					
62				search_block.innerHTML = data.body.innerHTML;
63				
64				document.dispatchEvent(smartSearchAdd);
65				
66				try{
67					var _search_smart_array_path = search_smart_array_path ? search_smart_array_path : false;
68				}catch(e){}
69				try{
70					var my_search_smart_array_path = shop2.my.search_smart_array_path ? shop2.my.search_smart_array_path : false
71				}catch(e){}
72				
73				if( _search_smart_array_path ){
74					
75					var array_path = search_smart_array_path;
76					
77				}else if( my_search_smart_array_path ){
78					
79					var array_path = shop2.my.search_smart_array_path.split(',');
80					
81				}else {
82					
83					var array_path = [	
84					"/g/libs/vue/2.4.3/vue.min.js",
85					"/g/libs/ba_throttle_debounce/js/jquery.ba_throttle_debounce.min.js",
86					"/g/libs/vue_clickaway/js/vue_clickaway.min.js",
87					"/g/templates/shop2/2.130.2/default-3/js/m.smart_search.js"];
88				}
89					
90					load_scripts( array_path );
91		
92		
93			}else {
94				// нет HTML из shop2.2.130.tpl
95			}
96		});
97		
98		doneInteraction = true;
99		
100		createCookie('gr_search_init_done', 1, 30);
101	}
102
103	if (readCookie('gr_search_init_done') == '1') {
104		init_smart_search();
105	};
106
107	document.addEventListener('scroll', init_smart_search );
108	document.addEventListener('mousemove', init_smart_search );
109	document.addEventListener('touchstart', init_smart_search );
110	document.addEventListener('keydown', init_smart_search );
111	document.addEventListener('click', init_smart_search );
112
113})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.