Просмотр полной версии : Скрипты Java
Первый буду. Не нах ли? ;)
Итак, здесь хотелось бы обсуждать разнообразные скрипты на языке Java.
-------------------------
Собственно, в настоящий момент мне глубоко интересен такой скриптик...
Есть текстовый файл определенной структуры. Скажем, такой:
наименование_параметра = значение1, значение2, значение3, ..., значениеN;
Нужен скрипт, который бы считывал эти параметры из этого файла и подставлял их в HTML-форму при загрузке страницы. Такая своеобразная БД получается. вегуд, правда, сказал, что это проще на PHP написать, но мне с JS-ами проще...
Требую прикрутить вот это (http://www.woweb.ru/index.htm?a~g;id~1025278700;t~2) к Главной! :)
Жаль, но нужного скрипта я пока не нашел - специфический слишком. Буду компилировать сам, наверное...
Первый буду. Не нах ли? :rolleyes:
...
не знаю, куда и как ты хочешь эти данные вставлять..
привожу свое видение
если хочешь пользовать JS...
------ твоя страница.html ------
<script src="mydata.js"></script>
Первое значение параметра 1 вот такое: <script> document.write(myparam1[0]); </script><br>
А второе значение параметра 1 вот такое: <script> document.write(myparam1[1]); </script><br>
А третье значение параметра 2 вот такое: <script> document.write(myparam2[2]); </script><br>
-------------------------------
при этом файл с данными будет в виде js:
---- mydata.js ------
var myparam1 = new Array('значение1', 'значение2', 'значение3');
var myparam2 = new Array('значение1', 'значение2', 'значение3');
var myparam3 = new Array('значение1', 'значение2', 'значение3');
...
------------------------
Если хочешь по-хорошему, на php:
----- loadparam.php -----
<?php
$mydatafile = 'mydata.txt';
$lines = file($mydatafile);
while (list(, $line) = each($lines)) {
list($param, $values) = explode('=', $line);
$param = trim($param);
$values = trim($values);
$$param = explode(',', $values);
}
?>
----------------
при этом файл c данными
----- mydata.txt ----
myparam1=Маша,Петя,Вова
myparam2=яблоки,груши,сливы
------------------------
и наконец твой файл
----- твой файл .php -----
<?php
include 'loadparam.php';
?>
<?php echo $myparam1[0] ?> любит <?php echo $myparam2[2] ?> (результат: Маша любит сливы)
<?php echo $myparam1[1] ?> обожает <?php echo $myparam2[1] ?> (результат: Петя обожает груши)
<?php echo $myparam1[2] ?> в гробу видел эти <?php echo $myparam2[0] ?> ...
(можно вместо <?php echo $myparam1[0] ?>
использовать конструкцию <?=$myparam1[0]?>
но это порочная практика ;) )
--------------------------------
в дальнейшем, если ты захочешь перейти на
базу данных - тебе надо будет только заменить loadparam.php
можно совместить эти два подхода
и сделать чтобы php-скрипт генерил js-скрипт.
зачем? например, чтобы php-скрипт положить
на одном сайте, и использовать результат его работы (js-скрипт)
на других сайтах.
пример: скрипт лежит на ф-сайте и выдает
js-скрипт, где в переменных определяются последние заголовки новостей:
var news = new Array();
news.push({title: "А где РПЛ?", author: "Akar", postdate: "2005-12-22 14:00:00"});
news.push({title: "А где WL?", author: "Akar", postdate: "2005-12-22 12:00:00"});
news.push({title: "А где вегуд?", author: "Akar", postdate: "2005-12-22 11:00:00"});
вы этот скрипт подключаете у себя на страничке:
<script src=http://fifasoccer.ru/news/export.php></script>
и используете эти переменные:
Последняя новость с ф-сайта: <script> document.write(news[0].title); </script>, автор:
<script> document.write(news[0].author); </script>, время публикации: <script> document.write(news[0].postdate); </script>
таким образом, ваша страница без php и не имея доступ к базе
данных наших новостей таки показывает желаемую информацию.
для ранее рассмотренного случая - имеем измененный loadparam.php
который будет читать mydata.txt и выдавать js-скрипт
(выходной файл будет примерно такой же как и в начале поста - mydata.js)
----- loadparam.php -----
<?php
$mydatafile = 'mydata.txt';
$lines = file($mydatafile);
while (list(, $line) = each($lines)) {
list($param, $values) = explode('=', $line);
$param = trim($param);
$values = explode(',', trim($values));
echo "var $param = new Array('".join("','", $values)."');\n";
}
?>
----------------
---- mydata.txt ------
myparam1=значение1,значение2,значение3
myparam2=значение1,значение2,значение3
myparam3=значение1,значение2,значение3
...
------------------------
и вот мы его используем в странице:
------твоя страница.html------
<script src="http://somesite.ru/loadparam.php"></script>
Первое значение параметра 1 вот такое: <script> document.write(myparam1[0]); </script><br>
А второе значение параметра 1 вот такое: <script> document.write(myparam1[1]); </script><br>
А третье значение параметра 2 вот такое: <script> document.write(myparam2[2]); </script><br>
-------------------------------
на что следует обратить внимание:
на то, чтобы значения параметров не содержали служебных
знаков (равно и запятая)
если генерится js-скрипт, учитывать кавычки
p.s.
вообще, сейчас модно выдавать xml,
а такой гемор с генерированием js-скрипта
относится к разряду хитрожопств.
однако, такие штуки работали и 5 лет назад, когда xmlом еще еще не пахло,
работают и сейчас... а значит - почему бы и нет?
p.p.s.
работу кода не проверял, мог где-нибудь облажаться :rolleyes:
Э-э-э... Спасибо, буду думать... :cool:
у меня вопрос к вегуду: ты не поделишься скриптом для проигрывания музыки? ну тем, что на ф-сайте стоит?
А если попробовать сохранить любую f-страничку на диск и поискать там .js-файл? Или, например, поискать в global.js? ;)
А если попробовать сохранить любую f-страничку на диск и поискать там .js-файл? Или, например, поискать в global.js?
я уж поискал, и все, что искал, нашел :)
теперь другие, технические проблемы -- нужно скачать Flash MX.
я уж поискал, и все, что искал, нашел :)
теперь другие, технические проблемы -- нужно скачать Flash MX.
вот так всегда.. всё сп*здят :rolleyes:
качай сразу Flash8
еще б заставить это работать...
СЗОТ, конечно, но зачем это все? Реальный пацаны пользуют WordPad. :) Конкретные - Notepad. Я реальный. Глупо, неудобно, устарело, знаю, но ведь некоторые до сих пор не юзают мышку в шутерах. Аксакалы!
Теперь по теме. вегуд, я немного туплю. Как конкретно вставить данные из .txt-файла в тело странички при помощи приведенного тобой js'а? Скажем, я хочу отобразить текстовую строку-ссылку. Тогда это будет так:
<a href="mailto:admin@microsoft.com">???</a>
Вот вместо "???" я, допустим, хочу поставить значение №2 строки myparam25 из mydata.txt. Вот... :o
Мне нужен скрипт для гостевой книги. Мож я не втему или сам не знаю что пишу, о всё же.
Woo Hoo!
28.12.2005, 14:36
Мне нужен скрипт для гостевой книги. Мож я не втему или сам не знаю что пишу, о всё же.
http://cgi.myweb.ru/index.phtml ищи что хочешь.
Попробую пока использовать JS для доски. У меня есть... хм... несколько :D вопросов. Пока что общеобразовательных, а там - посмотрим. Может, сам дойду. Итак, есть JS-файл с таким содержимым:
// definitions
var user_name = new Array ('Luke', 'Leia', 'Anakin', 'Vader');
var user_status = new Array ('hits', 'loves', 'beats', 'kills');
var misc = new Array ('target', 'mushrooms', 'maniacs', 'Obi-Van');
И есть HTML-файл:
<script type="text/javascript" src="sample.js"></script>
<BODY>
<hr>
<center>
<script>document.write(user_name[0]);</script>
<script>document.write(user_status[0]);</script> the
<script>document.write(misc[0]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[1]);</script>
<script>document.write(user_status[1]);</script> the
<script>document.write(misc[1]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[2]);</script>
<script>document.write(user_status[2]);</script> the
<script>document.write(misc[2]);</script>!
</center>
<hr>
<center>
<script>document.write(user_name[3]);</script>
<script>document.write(user_status[3]);</script> the
<script>document.write(misc[3]);</script>!
</center>
<hr>
</BODY>
Какую функцию мне надо написать (или воспользоваться стандартной), чтобы вместо цифр в указаниях параметров стояли случайные величины? Иными словами, как запустить генератор случайных чисел? У меня есть, скажем, матрица с неким набором параметров, причем их количество определено некой константой. Например:
var Array_UserName_RecordsNum = 3; // from 0 to 3
var Array_UserName = new Array ('thegood', 'Akar', 'Nefelim', 'admin');
Тогда эта функция должна считать значение параметра Array_UserName_RecordsNum и выдать любое число от 0 до значения параметра.
Зачем мне это все? Я хочу написать такой код, в котором количество строк было бы разумным и определенным. Скажем, в приведенном HTML-примере, для каждого из массивов мне пришлось писать отдельный блок, схожий с остальными - это неэффективно. Блок должен быть один, а количество его повторов с РАЗНЫМИ вводными определяется или автоматически, или задается. Это уже будет второй вопрос - такая функция тоже понадобится. Используя ее, я смогу построить идентичный ряд строк, скажем - таблицу юзеров. Считываем количество юзеров и это количество раз обрабатываем один и тот же блок кода.
Какую функцию мне надо написать (или воспользоваться стандартной), чтобы вместо цифр в указаниях параметров стояли случайные величины? Иными словами, как запустить генератор случайных чисел? У меня есть, скажем, матрица с неким набором параметров, причем их количество определено некой константой. Например:
var Array_UserName_RecordsNum = 3; // from 0 to 3
var Array_UserName = new Array ('thegood', 'Akar', 'Nefelim', 'admin');
Тогда эта функция должна считать значение параметра Array_UserName_RecordsNum и выдать любое число от 0 до значения параметра.
в твоем случае Array_UserName_RecordsNum должна равнятся 4,
потому что у тебя 4 элемента ;)
но эта переменная не нужна вовсе, потому что число элементов
можно получить через Array_UserName.length()
твоя функция выглядит примерно так
function getRandomElement(InArray) {
return InArray[ Math.round(Math.random()*(InArray.length() - 1)) ];
}
она возвращает случайный элемент массива
остается только
document.write(getRandomElement(Array_UserName));
:( Что-то не работает у меня скрипт. Видать, где-то я что-то не так прописал.
Кстати, я скачал приличный гайд по Яве, так что вопросов, думаю, у меня станет существенно меньше.
js рекомендую дебажить в firefox
там в инструментах есть джава-консоль, где можно посмотреть подробности ошибки
Есть скрипт (в аттаче). В "ослике" все работает, а вот FireFox его крутить не хочет - пишет: Предупреждение: Element referenced by ID/NAME in the global scope. Use W3C standard document.getElementById() instead.
Источник: file:///d:/_httpsrv/home/moddebauch.org/script/flakes.js
Строка: 75".
Вот она строка 75 (и 76):
si[i].style.pixelLeft=Xpos[i];
si[i].style.pixelTop=Ypos[i]+hscrll;
Как переписать ее, чтобы скрипт работал под FireFox? Скрипт образует на страничке "снегопад" - заданные изображения летят сверху вниз как снежинки.
Нужен скрипт калькулятора услуг.
Если кто видел что-то похожее, киньте ссылку на архивчик... :o
<form>
<h3>Календарь карманный</h3>
<table width="100%">
<tr valign="top">
<td width="10"><input type="checkbox" name="" value="check me"></td>
<td width="20%">С ламинированием</td>
<td width="35%">Количество штук: <input name="" type="text" value="1"></td>
<td width="35%">Цена <input name="" type="text" value="3"></td>
</tr>
<tr valign="top">
<td><input type="checkbox" name="" value="check me"></td>
<td>Без ламинирования</td>
<td>Количество штук: <input name="" type="text" value="100"></td>
<td>Цена <input name="" type="text" value="250"></td>
</tr>
</table>
<h3>Календарь настенный</h3>
<table width="100%">
<tr valign="top">
<td width="10"><input type="checkbox" name="" value="check me"></td>
<td width="20%">Формат А3</td>
<td width="35%">Количество штук: <input name="" type="text" value="30"></td>
<td width="35%">Цена <input name="" type="text" value="1500"></td>
</tr>
<tr valign="top">
<td><input type="checkbox" name="" value="check me"></td>
<td>Формат А3 +</td>
<td>Количество штук: <input name="" type="text" value="50"></td>
<td>Цена <input name="" type="text" value="3000"></td>
</tr>
<tr valign="top">
<td><input type="checkbox" name="" value="check me"></td>
<td>Формат А2</td>
<td>Количество штук: <input name="" type="text" value="250"></td>
<td>Цена <input name="" type="text" value="7500"></td>
</tr>
</table>
<table>
<tr width="100%">
<td width="10"></td>
<td><b>Общая стоимость:</b> <input name="" type="text" value="1500"> рублей.</td>
</tr>
</table>
</form>
Посмотри, например, здесь (http://huba.ru/rdssoft/type6/su95/page0/). Не совсем то, но может и сойти. Еще пошукай на softlinks.ru или похожих архивах, где есть скрипты.
Nefelim, что-то там не то всё...
Есть скрипт (в аттаче).
Как переписать ее, чтобы скрипт работал под FireFox? Скрипт образует на страничке "снегопад" - заданные изображения летят сверху вниз как снежинки.
Скрипт кривой и старый. Требуется полная переделка. :)
для начала следовало бы убрать поддержку старого NN - то есть
if (ns) { - вырезать - } else { - оставить - }
в целях экономии времени можно так:
вместо
document.write('<img id="si" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
надо
document.write('<img id="si' + i + '" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
и вместо
si[i].style.pixelLeft=Xpos[i];
si[i].style.pixelTop=Ypos[i]+hscrll;
надо
document.getElementById('si'+i).style.left=Xpos[i];
document.getElementById('si'+i).style.top=Ypos[i]+hscrll;
результат не проверял :)