Разработка веб-ресурса с использованием HTML, CSS, JavaScript, PHP. Применение базовых технологий для создания фотоархива в веб-интерфейсе. Захаркина В.В. - 11 стр.

UptoLike

Составители: 

20
Иногда я буду его применять. Используя приведенный код, не забудьте
вывести эти фрагменты на одной строке кода! А в ряде случаев длинные
строковые литералы будут разбиты на фрагменты:
var s = 'начало очень длинной строки' +
'конец очень длинной строки';
Для реального кода это нерационально, но при печати по крайней мере
синтаксически правильно.
Предполагается, что те, кто читает этот раздел, знакомы с языком
структурной разметки HTML, возможностями каскадных таблиц
стилей CSS и имеют представление об основах клиентского
программирования на языке JavaScript.
Вывод фотографии в отдельном
окне
Во многих предложенных в предыдущем разделе вариантов
организации фотоархива фотография выводится в отдельном окне
щелчком по миниатюре. В большинстве случаев логично расположить
новое окно по центру свободной части экрана.
Приведем лишь один из вариантов функции, открывающей окно
заданных размеров по центру свободной части экрана монитора и
загружающей в это окно
документ с указанного адреса. При этом
предположим, что в новом окне будут открываться изображения
разного размера.
Планируя последовательные открытия изображений, согласимся, что
новые окна не должны множиться. Значит, все они должны иметь
21
одно условное имя, задаваемое в качестве 2-го аргумента метода
open(). В таком случае необходимо после загрузки нового
содержимого активизировать окно, чтобы оно переместилось на
передний план поверх других окон приложений. Здесь можно
применить по крайней мере два подхода:
Передать фокус ранее открытому окну и изменить его размеры и
положение, чтобы
при новых размерах окно снова расположилось
по центру экрана.
Закрыть окно с изображением, если оно уже было ранее открыто,
а потом открыть новое окно нужного размера.
Мне более рациональным представляется второй вариант. Впрочем,
заинтересованному читателю предлагаю написать функцию,
реализующую альтернативный подход. Отладив сценарий, сравните
результаты и сделайте соответствующий вывод.
Итак, предлагаемый вариант фрагмента сценария и объявления
функции.
//Объявляем глобальную переменную newWin без
//инициализации. При вызове функции openWin()
//ей будет присвоено значение объектного типа,
//ссылающееся на новое окно.
var newWin;
function openWin(addr,w,h)
//Открывает окно с условным именем 'new'
//шириной w и высотой h и загружает в него
//документ с адресом addr.
//Окно располагается по центру
свободной части
//экрана.
{
//Закрываем окно, если оно ранее было открыто:
if (newWin) newWin.close();
//Определяем координаты левого верхнего угла