White cat - Справочкик по JavaScript
Методы объекта history
back()
Загружает в окно Web-обозревателя предыдущий документ из списка истории.
forward()
Загружает в окно Web-обозревателя следующий документ из списка истории.
go()
go({Адрес})
Загружает в окно Web-обозревателя следующий документ из списка истории, интернет-адрес которого наиболее близок к переданному в качестве параметра.
Поддерживается только NN.
go({Позиция})
Перемещается в списке истории на позицию, номер которой передан в качестве параметра.
Поддерживается только IE начиная с 4.0
go({Приращение})
Перемещается в списке историй на количество позиций, переданных в качестве параметра. Можно задавать как положительные, так и отрицательные значения приращения.
Поддерживается только NN.
Советы по JavaScript
Передача и обработка данных в html-файле
Передача данных в html-файл:
Передачу данных в html-файл можно произвести через URL-адрес. После адреса ставиться знак вопроса и после него параметр, который Вы хотите передать. Если этих параметров несколько, то между ними ставиться амперсанд (&).
Пример 1:
"youfile.html?parametr"
Пример 2:
"youfile.html?parametr1¶metr2¶metr3"
Также данные можно передавать при помощи форм. Для этого надо воспользоваться методом GET.
Вот как буде выглядеть URL-адрес в строке броузера:
Пример:
"youfile.html?name1=value1&name2=value2&name3=value3"
Получение переданных данных:
Получение переданных данных выполняется при помощи JavaScript.
Сначало мы присваиваем переменной все то, что находится после знака вопроса:
var p_url=location.search.substring(1);
Если Вы передавали один параметр, то переменную p_url можно обрабатывать.
Если параметров было много, то их надо разделить:
var parametr=p_url.split("&");
У нас получился массив parametr, который содержит полученные данные.
Если Вы пересылали данные при помощи форм, то надо избавиться от знака равенства и присвоить каждой переменной свое значение:
var values= new Array();for(i=0; i var j=parametr.split("="); values[j[0]]=unescape(j[1]);}
Пример:
Если строка была:
"youfile.html?name=Serg&city=Рязань&age=21"
то получим массив:
values[name]="Serg";values[city]="Рязань";values[age]="21";
или можно так:
values[0]="Serg";values[1]="Рязань";values[2]="21";
Чем заменить SSI, или необычное использование JavaScript
Структура подавляющего количества интернет-страничек примерно одинакова: это заголовок странички, навигационное меню и, непосредственно, само содержимое. Нет проблем, когда на Вашем сайте несколько страниц. Если Вы захотели изменить дизайн, то на это уйдет немного времени. А если страниц не 8-10 а 100-200? Чтобы поменять дизайн нужен долгий однообразный кропотливый труд. А если в меню появился новый пункт? Опять же везде на каждой странице надо вводить изменения.
Помочь в этом может SSI - возможность собрать страничку из отдельных блоков. Т.е у Вас есть меню, которое одинаково на всех страницах. Вы его выносите в отдельный файл, а затем включаете его в нужное место на странице. Теперь, чтобы изменить меню на всех страницах, надо изменить его только в одном файле.
Это конечно удобно, но данная возможность имеется только при платном хостинге, или Вам придется вставлять баннеры хостера, что может быть нежелательно для Вас.
Справиться с этой проблемой может язык JavaScript, а именно атрибут SRC в теле тега <SCRIPT>.
Атрибут SRC задает URL файла, в котором находится код программы JavaScript, а в самом файле с расширением *.js мы запишем то, что должно выводиться на экран при помощи метода document.write
Например у нас есть меню состоящее из двух пунктов и страница, в которую надо вставить это меню:
Файл menu.js:
document.write("<B>Меню:</B>
<BR>"); document.write("<A href="page1.html">Ссылка1</A>
<BR>"); document.write("<A href="page2.html">Ссылка2</A>");
Файл page.html:
<html> <head> <title>Проверка</title> </head> <body> <h1>Моя страница</h1> <script src="menu.js"></script> . . . </body> </html>
Т.е. вместо
<script src="menu.js"></script>
браузер вставил:
<B>Меню:</B>
<BR> <A href="page1.html">Ссылка1</A>
<BR> <A href="page2.html">Ссылка2</A>
И если вместо меню на всех страницах вставить <script src="menu.js"></script>, то для изменения меню на всех страницах нужно изменить только файл menu.js
Но у этого метода есть небольшие недостатки:
Как сделать страницу стартовой
Сделав страницу стартовой при запуске Internet Explorer браузер пользователя будет автоматически загружать указанный адрес.
Вот код ссылки, нажав которую пользователь сделает страницу стартовой:
<a href="#" onClick="this.style.behavior="url(#default#homepage)"; this.setHomePage("http://www.spravkaweb.ru/"); return false;"> Сделать страницу стартовой</a>
Как добавить страницу в избранное
Добавляет вашу страницу в "Избранное".
Эта возможность позволяет посетителю вашей страницы сделать закладку, если он не успевает просмотреть или просто запомнить адрес вашего ресурса.
<a href="#" onClick="window.external.addFavorite ("http://www.spravkaweb.ru/", "Краткий справочник WEB-языков"); return false;"> Добавить сайт в избранное</a>
Как вывести дату последнего изменения страницы
Эта возможность позволяет автоматически указывать дату последней модификации данной страницы.
Но данная возможность таит и свой минус: требуется почаще обновлять страницу, а иначе пользователь будет думать, что срок годности вашего ресурса уже давно истек.
<script language="JavaScript"> <!-- document.write ("Дата последнего изменения: " + document.lastModified); //--> </script>
Как убрать в теге SELECT рамку и стрелку
При помощи каскадных таблиц стилей (CSS) можно изменить стандартный вид объекта <SELECT>:
<SELECT size=1 style="position:absolute;width:100px; clip:rect(2px 82px 20px 2px);background:pink;top:10px;">
<OPTION VALUE=1>One
<OPTION VALUE=2>Two
<OPTION VALUE=3>Three </SELECT>
Интересный JavaScript - побуквенное появление текста
Данный эффект позволяет выводить текст побуквенно. Есть возможность задавать количество выводимых за один раз символов и скорость вывода.
Вот код:
<script>
var source,dest,len,now=0,delay=100,letters=1;
function show_text()
{
source = document.getElementById("pageTextSource");
dest = document.getElementById("pageText");
len = source.innerHTML.length;
show();
}
function show()
{
dest.innerHTML += source.innerHTML.substr(now,letters);
now+=letters;
if(now<len)
setTimeout("show()",delay);
}
</script>
<body onload="show_text();">
<p style="display:none" id="pageTextSource">Текст для вывода...
<p id="pageText">
</body>