Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JS.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
436.22 Кб
Скачать

Гистограмма

Данный пример строит гистограмму по случайным значениям. Ни HTML, ни JavaScript не позволяют рисовать в окне браузера. Однако можно формировать картинку из маленьких изображений, хранящихся в файлах, с помощью объекта image.

Рис. 5. Гистограмма

Документ содержит таблицу с десятью строками и десятью столбцами. В каждой ячейке таблицы находится изображение. При нажатии кнопки в форме в таблице строится гистограмма путем замены белых изображений (white.gif) на голубые (blue.gif). Обратите внимание, что изображения в документе нумеруется в порядке их описания, т.е. в таблице номера ячеек растут по строке.

<HTML>

<HEAD>

<SCRIPT LANGUAGE="JavaScript">

function d_rand() {

for(j=0;j<10;j++)

for(i=0;i<10;i++) {

y= Math.floor(Math.random()*10);

if (i>(9-y)) document.images[j+i*10].src = "blue.gif"

else document.images[j+i*10].src = "white.gif"

}}

</SCRIPT>

<BODY bgcolor=ffffff>

<CENTER>

<TABLE BORDER=0>

<TR>

<TD><img src="white.jpg" width=20 height=10></TD>

<TD><img src="white.jpg" width=20 height=10></TD>

.......

</TR>

<TR>

<TD><img src="white.jpg" width=20 height=10></TD>

<TD><img src="white.jpg" width=20 height=10></TD>

.......

</TR>

.......

<TR>

.......

<TD><img src="white.jpg" width=20 height=10></TD>

</TR>

</TABLE>

<FORM NAME=diagram>

<INPUT NAME=random TYPE=button VALUE="Гистограмма" onClick="d_rand()">

</FORM>

</CENTER>

</BODY>

</HTML>

Работа с окнами

1. Управление окном, из которого было открыто текущее окно. Чтобы закрыть окно-предшественник, нужно просто выполнить метод close для него:

window.opener.close();

а чтобы изменить, например, его цвета фона необходимо выполнить

window.opener.document.bgColor='cyan'.

2.Если вы используете фреймы, то поисковая система может выдать ссылку на документ, описанный внутри тега <FRAMESET>. Чтобы в этом случае автоматически загружать заглавную страницу с фреймами (index.htm) используйте скрипт:

<SCRIPT LANGUAGE="JavaScript">

if (self.parent.frames.length == 0) self.parent.location="index.htm";

</SCRIPT>

3. Боремся с чужими фреймами. Некоторые серверы, предоставляющие бесплатный хостинг, вставляют ваши документы в файл с фреймами, содержащими их рекламу. Если у вас нет фреймов, проверяем их наличие и если находим их, то загружаем в браузер наш документ.

<SCRIPT>

if (parent.frames[0]) { top.location.href="my_page.htm "; }

</SCRIPT>

Если у вас фреймы, то используем тот же скрипт, но вставляем его в файл, где описываются фреймы, до их описания.

4. Открытие гиперссылки в отдельном окне. Допустим, ваш документ имеет большой объем, содержит иллюстрации и ссылки на их увеличенные версии. Если вы будете про­сматривать изображения в том же окне, то повторная загрузка документа (даже из кеша браузера) каждый раз будет занимать довольно много времени. Обычно с помощью аттрибута target гиперссылку открывают в новом окне:

<A HREF="3_32.jpg" target="win1"> <IMG SRC="3_32_t.jpg" border=1 HEIGHT=111 WIDTH=182></A>.

Однако, если такое окно (в данном случае с именем "win1") уже существует, оно не получит фокус и останется скрытым - ваш пользователь не заметит изменений на экране монитора.

Чтобы каждый раз при загрузке нового документа окно получало фокус, можно использовать такой скрипт:

<SCRIPT LANGUAGE="JavaScript">

var op=0;

var win1;

function show_(fn) {

if (op && win1.closed) op=0;

if (op) {win1.document.location=fn; win1.focus(); }

else {op=1; win1=window.open(fn,"win1","scrollbars=1");}

return false;}

</SCRIPT>

......

<A HREF="3_32.jpg" target="win1" onClick="return show_(this.href);"> <IMG SRC="3_32_t.jpg" border=1 HEIGHT=111 WIDTH=182></A>.

В данном случае, если окно win1 существует, до в него загружается новый документ и оно получает фокус. Если окно еще не было создано или было закрыто, оно создается с помощью метода window.open. Функция show_() возвращает значение false, поэтому действие по умолчанию (переход по гиперссылке) не выполняется.

5. Создание нового окна браузера без панелей и строки для ввода адреса, без статуcной строки и полос прокруток, даже без меню навигации. Удобно, например, для просмотра картинки, которая целиком помещается на экран.

<a href="#1" onClick="window.open('http://адрес_странички_или_картинки', 'newWin', 'Toolbar=0, Location=0, Directories=0, Status=0, Menubar=0, Scrollbar=0, Resizable=0, Width=640, Height=480')"> <p> Текст вашей ссылки </a>

Приложение 1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]