Как передать значение из html в скрипт.
Модератор: Duncon
Как передать значение из html в скрипт и использовать его там?
makeMenu('sub2','ArchiCAD','archicad.html','info')
Нужно, чтобы вместо "archicad.html" стояла переменная, значение которой передается из html.
makeMenu('sub2','ArchiCAD','archicad.html','info')
Нужно, чтобы вместо "archicad.html" стояла переменная, значение которой передается из html.
Corite, вообще-то в HTML нет переменных...
Даже самый дурацкий замысел можно воплотить мастерски
Как уже сказали, в html нет переменных - это правда. Может быть ты имел в виду нечто другое, но не так выразился? Объясни по точнее, что именно требуется.
makeMenu - это функция Java Script или PHP? Или еще чего-то?
Если Java Script, то вариант такой:
каждому (ну или почти каждому) элементу HTML соответствует объект JavaScript с аналогичным именем, а его параметры будут параметрами этого объекта. Тогда тебе нужно вставить вместо archicad.html сценарий JS и обратиться к свойству нужного объекта. Например у HTML тега <image> есть параметр src. Чтобы к нему обратиться из сценария - window.document.здесь имя картинки.src
Если тебе нужно чтобы вместо archicad.html было имя текущего документа - всесто archicad.html всавь сценарий с одной единственной строкой - document.location
Можно реализовать на PHP - ломает писать, там еще проще, только чуть больше кода, но я не уверен что ты спрашиваешь именно это, по этому, объясни по точнее, что нужно - постараюсь тебе помочь.
makeMenu - это функция Java Script или PHP? Или еще чего-то?
Если Java Script, то вариант такой:
каждому (ну или почти каждому) элементу HTML соответствует объект JavaScript с аналогичным именем, а его параметры будут параметрами этого объекта. Тогда тебе нужно вставить вместо archicad.html сценарий JS и обратиться к свойству нужного объекта. Например у HTML тега <image> есть параметр src. Чтобы к нему обратиться из сценария - window.document.здесь имя картинки.src
Если тебе нужно чтобы вместо archicad.html было имя текущего документа - всесто archicad.html всавь сценарий с одной единственной строкой - document.location
Можно реализовать на PHP - ломает писать, там еще проще, только чуть больше кода, но я не уверен что ты спрашиваешь именно это, по этому, объясни по точнее, что нужно - постараюсь тебе помочь.

Облегчать жизнь юзерам и тем самым усложнять ее себе - есть святой долг каждого программера 

В общем передо мной стоит такая задача - запускается страница, в которой есть ссылка на скрипт этот скрипт в отдельном файле и вызывается
<SCRIPT language=JavaScript1.2 src="menus.js" type=text/javascript>
</SCRIPT>
Необходимо чтобы в menus.js передавалось имя запущенойстраницы в формате имя_страницы.html В С++ это делалось с помощью либо глобальных переменных либо передавались параметры. А здесь как?
<SCRIPT language=JavaScript1.2 src="menus.js" type=text/javascript>
</SCRIPT>
Необходимо чтобы в menus.js передавалось имя запущенойстраницы в формате имя_страницы.html В С++ это делалось с помощью либо глобальных переменных либо передавались параметры. А здесь как?
Попробовал заменить makeMenu('sub2','ArchiCAD','archicad.html','info') на makeMenu('sub2','ArchiCAD',document.location,'info') - не получилось.
makeMenu - запускается несколько раз (с разными параметрами) в файле menus.js для создания соответствующих пунктов меню
makeMenu - запускается несколько раз (с разными параметрами) в файле menus.js для создания соответствующих пунктов меню
А, теперь все понятно.
Ты немного не правильно ставишь перед собой задачу: передавать в скрипт ничего не надо. Скрипт (menus.js) подгружается в документ и оперирует со всеми переменными и объектами документа, в который он подгружен.
Т.е., чтобы получить имя текущей страницы тебе нужно будет в скрипте вырезать имя этой страницы из текущего URL документа. Проще говоря, обратись к свойству location объекта document (document.location), а дальше вырезай оттуда имя страницы.
Ты немного не правильно ставишь перед собой задачу: передавать в скрипт ничего не надо. Скрипт (menus.js) подгружается в документ и оперирует со всеми переменными и объектами документа, в который он подгружен.
Т.е., чтобы получить имя текущей страницы тебе нужно будет в скрипте вырезать имя этой страницы из текущего URL документа. Проще говоря, обратись к свойству location объекта document (document.location), а дальше вырезай оттуда имя страницы.
Облегчать жизнь юзерам и тем самым усложнять ее себе - есть святой долг каждого программера 

Все дело в том, что я мало работал с явой. Можешь кусок кода привести и куда его потом вставить написать?
Как из document.location вырезать имя страницы - оно в конце идет?
Вот, даю тебе код и пояснения к нему:
var x = window.location.href;
var y = new Array;
var z;
y = x.split("/");
z = y[y.length-1];
document.writeln(z);
Вставляй его в любом месте документа или в файле скрипта.
Итак, пояснения:
Всего для этой цели нам понадобится 2 переменных и 1 массив.
Переменная x - это текущее содержжимое командной строки броузера.
Переменная z - будет содержать искомые данные, т.е. имя документа. С этой-то переменной дальше и будешь оперировать.
Массив y - пустой массив.
Т.к. путь к файлу в командной строке пишется через символ "/" (например http://www.123.com/document.htp), то мы разобьем содержимое командной строки, хранящееся в переменной х, на несколько подстрок, разделенных символом "/" и запишем их в массив у. При этом сам "/" туда записываться не будет. Для этого используем метод split объекта (строковой переменной) х.
Теперь, т.к. имя документа содержится в самом конце командной строки, то оно записалось последним элементом в массив у. Теперь записываем в переменную z последний элемент массива у, т.е. имя текущего документа.
Вот и все
Теперь имя хранится в переменной z - используй ее, где понадобится...
var x = window.location.href;
var y = new Array;
var z;
y = x.split("/");
z = y[y.length-1];
document.writeln(z);
Вставляй его в любом месте документа или в файле скрипта.
Итак, пояснения:
Всего для этой цели нам понадобится 2 переменных и 1 массив.
Переменная x - это текущее содержжимое командной строки броузера.
Переменная z - будет содержать искомые данные, т.е. имя документа. С этой-то переменной дальше и будешь оперировать.
Массив y - пустой массив.
Т.к. путь к файлу в командной строке пишется через символ "/" (например http://www.123.com/document.htp), то мы разобьем содержимое командной строки, хранящееся в переменной х, на несколько подстрок, разделенных символом "/" и запишем их в массив у. При этом сам "/" туда записываться не будет. Для этого используем метод split объекта (строковой переменной) х.
Теперь, т.к. имя документа содержится в самом конце командной строки, то оно записалось последним элементом в массив у. Теперь записываем в переменную z последний элемент массива у, т.е. имя текущего документа.
Вот и все

Облегчать жизнь юзерам и тем самым усложнять ее себе - есть святой долг каждого программера 
