Out script

Материал из Eludia
Перейти к: навигация, поиск

Описание

Обёртка над out_html, генерирующая HTML-страницу, которая при загрузке исполняет js-код, заданный 1-м аргументом.

При этом, если задан 2-й аргумент, то он сериализуется при помощи $_JSON -> encode и доступен в качестве переменной data.

Предполагается, что в норме такие страницы должны загружаться в невидимый iframe (как правило, iframe с именем 'invisible', доступный на каждой странице). Соответственно, DOM страницы, видимой пользователю, при этом доступен через переменную parent.

При этом разумно свести все манипуляции с parent к вызову единственной функции от data (в нижеприведённом примере такая функция называется switch_cell). Данную функцию удобнее всего определить в контексте видимой страницы при помощи процедуры js или, ещё лучше, function.

Синопсис (Perl 5)

	# в Content-части

	out_script (switch_cell => {
	
		cell_id   => "#day_$_REQUEST{dt}",
				
		color_id  => $id ? 1 : 0,
	
	});

### или, что то же самое

	out_script ('parent.switch_cell (data)', {
	
		cell_id   => "#day_$_REQUEST{dt}",
				
		color_id  => $id ? 1 : 0,
	
	});
	# а в Presentation-части

	function switch_cell => ('data'), q {
		
		\$(data.cell_id).css ({backgroundColor: color [data.color_id]});
						
		setCursor ();
		
	};

### или, что то же самое

	js qq {
		
		var color = ['$color[0]', '$color[1]'];
		
		function switch_cell (data) {
		
			\$(data.cell_id).css ({backgroundColor: color [data.color_id]});
						
			setCursor ();
		
		}
		
	};
	
	...
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты