JavaScript
Это самоучитель по JavaScript на русском языке
забегая вперед:
к концу написания этого поста (сопровождавшегося длительным копанием в интернете и вынесением мозга мужу-программиста) стало ясно, что это мне не html, с которым я разбираюсь по ходу процесса, и придется потратить денек-другой (оптимистка) на работу с самоучителем. пост пока что сохраню, позже придется его проверять и, возможно, править.
понадобилось мне разобраться с такой вот темой:
передача параметров между страницами
а я в скриптах и программировании полный ноль. ну, т.е., совсем ничего не знаю.
так что разбираю по косточкам вопрос и конспектирую каждый хрящик )
пользуюсь двумя примерами: пример 1 и пример 2, их и цитирую и разбираю
скрипт (из примера2)
function getParam(sParamName){
var Params = location.search.substring(1).split("&"); // отсекаем «?» и вносим переменные и их значения в массив
var variable = "";
for (var i = 0; i < Params.length; i++){ // пробегаем весь массив
if (Params[i].split("=")[0] == sParamName){ // если это искомая переменная — бинго!
if (Params[i].split("=").length > 1) variable = Params[i].split("=")[1]; // если значение параметра задано, то возвращаем его
return variable;
}
}
return "";
}
все, что отделено "//" - комментарии
задаем функцию: function getParam(sParamName)имя getParam аргумент (sParamName)
переменная Params
объект location (тыц) содержит информацию о текущем URL
свойство search объекта location выбирает часть URL после "?" (включительно)
метод substring(1) (тыц) в данном случае отсекает "?"
метод split("&") (тыц) разделяет полученную строку на массив (тыц), состоящий из кусочков, разделенных "&"
переменная variable
цикл for
присваиваем переменной i значение 0
цикл будет выполняться, пока переменная i < Params.length т.е. меньше количества элементов массива (переменная Params - наш массив, свойство length - кол-во элементов массива).
i++ означает i +1. после того, как проделаны все необходимые действия для i, присваиваем ему значение i +1 и продолжаем цикл.
if (Params[i].split("=")[0] == sParamName)
если
(Params[i]: содержимое ячейки [i] переменной-массива Params
split("="):разделяем на новый массив по знаку "=" (получается массив, состоящий из 2-х элементов: до знака и после знака)
[0] - первая ячейка нового массива
== если равно
sParamName)
тогда переходим к следующей строке:
{
if (Params[i].split("=").length > 1) variable = Params[i].split("=")[1];
return variable;
} если количество ( length ) элементов массива, полученного после разделения (split("=")) содержимого ячейки номер [i] переменной-массива Params больше 1 ,
то
переменная variable будет = содержимому второй ячейки нашего нового массива: Params[i].split("=")[1]
в этом случае на выход (туда, откуда наша функция вызывается) пойдет (вернется) это значение: return variable
в противном случае, т.е. если наши "if" не выполняются, на возврат пойдет пустая строка : return ""
Это самоучитель по JavaScript на русском языке
забегая вперед:
к концу написания этого поста (сопровождавшегося длительным копанием в интернете и вынесением мозга мужу-программиста) стало ясно, что это мне не html, с которым я разбираюсь по ходу процесса, и придется потратить денек-другой (оптимистка) на работу с самоучителем. пост пока что сохраню, позже придется его проверять и, возможно, править.
понадобилось мне разобраться с такой вот темой:
передача параметров между страницами
а я в скриптах и программировании полный ноль. ну, т.е., совсем ничего не знаю.
так что разбираю по косточкам вопрос и конспектирую каждый хрящик )
пользуюсь двумя примерами: пример 1 и пример 2, их и цитирую и разбираю
Для определения GET-параметров на JavaScript, необходимо произвести синтаксический разбор URL текущей страницы.
Структура URL - где живут параметры
в JavaScript строку с GET-параметрами можно определить так:
window.location.search. Свойство search объектаlocation хранит часть URL, начиная с «?» до начала хеш-данных.
Пример:
Допустим, у нас есть следующий адрес:
http://web.izjum.com/some-page.html?var1=111&var2&var3=ttt#someHashData,
тогда window.location.search вернёт нам:
?var1=111&var2&var3=ttt
скрипт (из примера2)
function getParam(sParamName){
var Params = location.search.substring(1).split("&"); // отсекаем «?» и вносим переменные и их значения в массив
var variable = "";
for (var i = 0; i < Params.length; i++){ // пробегаем весь массив
if (Params[i].split("=")[0] == sParamName){ // если это искомая переменная — бинго!
if (Params[i].split("=").length > 1) variable = Params[i].split("=")[1]; // если значение параметра задано, то возвращаем его
return variable;
}
}
return "";
}
все, что отделено "//" - комментарии
задаем функцию: function getParam(sParamName)имя getParam аргумент (sParamName)
переменная Params
объект location (тыц) содержит информацию о текущем URL
свойство search объекта location выбирает часть URL после "?" (включительно)
метод substring(1) (тыц) в данном случае отсекает "?"
метод split("&") (тыц) разделяет полученную строку на массив (тыц), состоящий из кусочков, разделенных "&"
переменная variable
цикл for
присваиваем переменной i значение 0
цикл будет выполняться, пока переменная i < Params.length т.е. меньше количества элементов массива (переменная Params - наш массив, свойство length - кол-во элементов массива).
i++ означает i +1. после того, как проделаны все необходимые действия для i, присваиваем ему значение i +1 и продолжаем цикл.
if (Params[i].split("=")[0] == sParamName)
если
(Params[i]: содержимое ячейки [i] переменной-массива Params
split("="):разделяем на новый массив по знаку "=" (получается массив, состоящий из 2-х элементов: до знака и после знака)
[0] - первая ячейка нового массива
== если равно
sParamName)
тогда переходим к следующей строке:
{
if (Params[i].split("=").length > 1) variable = Params[i].split("=")[1];
return variable;
} если количество ( length ) элементов массива, полученного после разделения (split("=")) содержимого ячейки номер [i] переменной-массива Params больше 1 ,
то
переменная variable будет = содержимому второй ячейки нашего нового массива: Params[i].split("=")[1]
в этом случае на выход (туда, откуда наша функция вызывается) пойдет (вернется) это значение: return variable
в противном случае, т.е. если наши "if" не выполняются, на возврат пойдет пустая строка : return ""
Комментариев нет:
Отправить комментарий