Вопрос
Мне нужен скрипт, который проверяет количество кликов по ссылке, но не php и perl, а обычный на Ява. Без примудростей, который считает сколько по линку кликнули, и рядом показывает число.
Ответ
<html>
<body>
<a href="http://www.microsoft.com/" target="_blank" onclick="ahc.innerText=parseInt(ahc.innerText)+1;">
Microsoft site</a>
<span>Link count:</span>
<span id="ahc">0</span>
</body>
</html>
Из конференции Expert_FAQ
Вопрос
<SELECT NAME="show">
<OPTION value="0" <?if ($show=="0")
{echo 'SELECTED';}?>>никуда не помещать</OPTION>
<OPTION value="1" <?if ($show=="1")
{echo 'SELECTED';}?>>поместить на сайт</OPTION>
<OPTION value="2" <?if ($show=="2")
{echo 'SELECTED';}?>>поместить в архив</OPTION>
<OPTION value="3" <?if ($show=="3")
{echo 'SELECTED';}?>>удалить</OPTION>
</SELECT>
<? echo 'show=',$show;?>
Помогите на JavaScript сделать так, чтобы после смены SELECTED $show сразу бы тоже сменялась и отображалась.
Ответ
Убираешь свое echo и ставишь вместо него input_text. на изменение селекта меняешь текст в инпуте. Должно получиться примерно следуещее:
<SELECT NAME="show"
onchange="show2.value='MyText'"
<OPTION value="0" <?if ($show=="0")
{echo 'SELECTED';}?>>никуда не помещать</OPTION>
<OPTION value="1" <?if ($show=="1")
{echo 'SELECTED';}?>>поместить на сайт</OPTION>
<OPTION value="2" <?if ($show=="2")
{echo 'SELECTED';}?>>поместить в архив</OPTION>
<OPTION value="3" <?if ($show=="3")
{echo 'SELECTED';}?>>удалить</OPTION> </SELECT>
<input type=text name="show2" value="<?=show;?>
Из конференции Inet_prog
Вопрос
1.Возможно ли подключить файл с помощью JS кроме как файл *.js.
2.Задано большое количество фамилий и имен как не разрывая между ними связи отсортировать либо по имени либо по фамилии.
Ответ
1) Конечно можно, например *.jpg и т.д. (вопрос в том, что значит подключить, например можно сделать так, чтобы картинка загружалась до загрузки страницы, то есть вашу картинку обязательно увидят))) (если нужен этот скрипт — пишите, мыло в конце ответа.)
2) Можно. Для этого нужно воспользоваться двухмерными массивами:
<script language="JavaScript" type="text/javascript">
var name_family=new Array(Количество человек, у кого есть и имя и фамилия)
function Full(name, family)
{
this.name=name
this.family=family
}
function full_name_family()
{
name_family[0]=new Full("Имя", "Фамилия")
name_family[1]=new Full("Имя", "Фамилия")
// И так далее.
}
full_name_family()
// Теперь можно спросить юзера, типа показать только фамилия или имена, или все вместе?
var vopros=confirm("Показывать только фамилии?")
if (vopros==true)
{
alert(name_family[0].family + ", " + name_family[1].family)
// И т.д.
}
else
{
alert(name_family[0].family + " " + name_family[0].name + ", " + name_family[1].family + " " + name_family[1].name)
// И т.д.
}
Из конференции Expert_FAQ
Вопрос
Возможно ли с помощью javaScript вносить инфориацию в реестр?
Ответ
Непосредственно в JavaScript методов для работы с реестром нет. Но можно использовать ActiveX объект WScript.Shell. Пример можешь посмотреть у себя в винде:
C:\ WINDOWS\ SAMPLES\ WSH\ Registry.js
Слегка модернизируем:
<script>
WshShell = new ActiveXObject("WScript.Shell");
WSHShell.Popup("Создает ключ HKCU\\MyRegKey со значением 'Ключ верхнего уровня'");
WSHShell.RegWrite("HKCU\\MyRegKey\\", "Ключ верхнего уровня");
</script>
При открытии такой HTML-страницы браузер спросит пользователя, можно ли создавать ActiveX объект и выполнит скрипт только в случае утвердительного ответа.
Из конференции Expert_FAQ
Вопрос
На страничке есть два фрейма, один из которых содержит ссылку. Существует ли возможность при нажатии на ссылку открывать новые странички в обоих фреймах?
Ответ
Есть такая возможность. Пишешь функцию:
<SCRIPT LANGUAGE="JavaScript">
<!-- // Activate cloak
function openurl(first,second)
{
top.frames["наименование фрейма 1"].location=first;
top.frames["наименование фрейма 2"].location=second;
}
// Deactivate cloak -->
</SCRIPT>
<FRAMESET ROWS="50,*"
frameborder="no" border=0>
<frame src="first.html" name="first"
scrolling="No"> <FRAME SRC="second.html"
NAME="second">
</FRAMESET>
Функцию размести в html-ке, которая эти фреймы содержит. В первом фрейме вставляешь:
<a href="javascript:top.openurl
('http://www.first.url','http://www.second.url');">
Random
Вопрос
В JS FAQe описывалось, как можно заменить содержимое практически любого тэга. У меня вопрос — как сделать так, чтобы информация для замены содержимого начинала скачиваться только после определенных действий пользователя, скажем, выбора пункта меню? Ведь если работать через src-поле JS-скрипта, загрузка нового содержимого будет происходитьвместе с загрузкой исходного файла.
Ответ
А кто мешает этот src прописывать динамически?
function loadScript(file, name)
{ var head = document.getElementsByTagName('head').item(0)
var scriptTag = document.getElementById('loadScript');
if(scriptTag) head.removeChild(scriptTag);
script = document.createElement('script');
script.src = file;
script.type = 'text/javascript';
script.id = name;
head.appendChild(script) return script;
};
Из конференции Expert_FAQ
Вопрос
В текстовом (или каком другом) файле хранятся рецепты, на страничке название (тип ссылка), при нажатии на которое открывается окно с данным рецептом + картинка (желательно). Можно ли это как-то сделать?
Ответ
Если все-таки использовать не один файл, а на каждый рецепт свой (это еще удобно и тем, что можно использовать стили для оформления), то можно все отлично сделать.
Делаем набор ссылок (хотя и не обязательно именно ссылок), место для отображения картинки и текста:
<head>
<script>
// Изменяет содержание IFRAMEов
function ChangeContent(strName)
{
document.frames.item(0).location.href = strName+".jpg";
document.frames.item(1).location.href = strName+".htm";
}
</script>
</head>
<body>
<table>
<tr>
<td rowspan="2" style="background:silver;">
<div style="width:200;height:590;overflow:auto;">
<!-- список рецептов -->
Торты <br>
<a href="#" onclick="ChangeContent('Tort1')"> Торт #1 </a> <br>
<a href="#" onclick="ChangeContent('Tort2')"> Торт #2 </a> <br>
Не торты <br>
<a href="#" onclick="ChangeContent('NeTort1')"> Не торт #1 </a> <br>
<a href="#" onclick="ChangeContent('NeTort2')"> Не торт #2 </a> <br>
<!-- … -->
<!-- конец списка -->
</td>
<td valign="top">
<!-- картинка -->
<iframe src="Intro.jpg" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="height:200px;width:590px;"> </iframe>
</td>
</tr>
<tr>
<td>
<!-- текст -->
<iframe src="Intro.htm" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" style="height:390px;width:590px;">
</iframe>
</td>
</tr>
</table>
</body>
Что-то типа того. Можно и нужно переделать разметку страницы.
Теперь при добавлении нового рецепта на сайт нужно только добавить туда куда надо:
<a href="#" onclick="ChangeContent('Tort314')"> Торт #314 </a>
и создать файлы "tort314.htm" и "tort314.jpg", а чтобы не хранить все это в корне, можно использовать папку или папки, задавая их имена при передаче префикса названий файлов в ChangeContent.
Peter
Вопрос
Подскажите, как с помощью JavaScript удалить, например, содержимое ячейки таблицы и прописать в нее новые данные?
Ответ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!function repltext ()
{
var a = document.all;
a.td1.innerText = a.atext.value;
return false;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<table>
<TABLE>
<TR>
<TD>
<INPUT TYPE="button" Value=press onClick="return repltext();">
<INPUT TYPE="text" NAME="atext" Value="new text">
</TD>
<TD id="td1">Initial text</TD>
</TR>
</TABLE>
</BODY>
</HTML>
Проверено только для IE.
A.Z.
Я типа придумал уже, как это сделать. Алгоритм будет следующий.
1. делаем тег с id, например, как указано выше,
<div id="mymetka">
</div>
2. пишем функцию, которая меняет наполнение между тегами. Вообще условия наполнения могут быть любыми, главное, что надо использовать свойство
document.getElementById('mymetka').innerHTML
или
document.all('mymetka').innerHTML
С помощью этого свойства меняется наполнение между именованными тегами, в нашем случае между
<div id="mymetka">
</div>.
3. Естественно, что надо создать переменную, значение которой и будет присваиваться. Выглядеть это будет так:
document.getElementById('mymetka').innerHTML = mydata;
Вообще, есть также близкие свойства innerText, outerText, outerHTML.
Andrey Ushakov
Вопрос
Говорят на JS можно сделать так, что бы при загрузке страницы, спрашивался пароль, но не такой что б отмену нажал и все, а что бы спрашивал до тех пор пока юзер не введет правильный.
Ответ
Надо вставить скрипт:
<html>
<head>
<title>
</title>
<script language=JavaScript type=text/javascript>
var i="Сам пароль"
var j=prompt("Введите пароль",
"текст, который будет отображаться в поле ввода пароля, можно оставить пустым")
while (i!=j)
{ j=prompt("Введите пароль", "текст, который будет отображаться в поле ввода пароля, можно оставить пустым") }
</script>
</head>
Из конференции Expert_FAQ
Вопрос
Как включить select в зависимости от выбора в форме? Есть вот такая форма:
<form>
<input type="radio" name="but1" value="AAA">
<input type="radio" name="but1" value="BBB">
<select name="koord">
<option>as</option>
<option>uy</option>
</select>
</form>
и надо, чтоб при выборе «AAA» select был включен, а при выборе «BBB» — <select name="koord" DISABLED>
— селект стал недоступен.
Ответ
<input type="radio" name="but1" value="AAA" onclick="koord.disabled=true;">
<input type="radio" name="but1" value="BBB" onclick="koord.disabled=false;">
<select name="koord" disabled>
Вопрос
А я хочу, чтобы во время загрузки посетителю показывалась надпись: дескать, все путем, все грузится, не уходи пока :)
Ответ
Вот код «Loading…» при загрузки страницы (пока вся страница не загрузится, посетителю будет показываться «Loading»):
<script language="javascript">
function vision() {
if(document.all) {
document.all.loading.style.visibility="hidden";
}
else {
document.layers.loading.visibility="hide";
}
}
</script>
</head>
<body onLoad="vision()">
<div id="loading" style="position:absolute; left:0; top:0; width:100%; height:100%;">
<table width="100%" height="100%" bgcolor="#c0c0c0">
<tr><td align="center" valign="middle">
Loading…\\тут можешь поставить любое другое слово,
например, "Загрузка".
</td></tr>
</table>
</div>
Пока вся страница не загрузится, посетитель будет видеть только твою надпись.
maloy
Вопрос
Имеется стандартный JavaScript по отправке формы почтой:
<FORM NAME = "mail_form" ACTION = "mailto:адрес?Subject=Send from Mail Form" METHOD = "POST" ENCTYPE = "text/plain">
<INPUT TYPE = "text" NAME = "Name" size="30">
ну, и т.д. Что нужно дописать в строчке <INPUT TYPE = "hidden" SIZE = 0 NAME =
для того, чтобы в это скрытое поле вставлялся заголовок с названием страницы, с которой был вызван скрипт почтовой формы? Страница, с которой вызывается этот скрипт каждый раз разная.
Ответ
Вот, сделал вот такую страничку:
<HTML>
<HEAD>
<TITLE></TITLE>
<script language=javascript>
<!--
function setpageurl() {
window.form.pageurl.value=window.location
}
-->
</script>
</HEAD>
<BODY>
<FORM action="mailto:mymail@mail.ru?subject=test"
method=POST id=form name=form
enctype=text/plain>
<input type=hidden name=pageurl id=pageurl value="">
<INPUT type="submit" value="Послать" id=submit1
name=submit1>
</FORM>
<script language=javascript>
<!--
setpageurl()
-->
</script>
</BODY>
</HTML>
У меня работает. Высылает адрес страницы, с которой посылается форма.
Сурменок Павел
Вопрос
Как вставить в ячейку таблицы HTML-документа результат работы java-скрипта?
Ответ
Вот скрипт:
<script>
function InsertResult()
{ document.write ("it's result"); }
</script>
Вот табла:
<table>
<tr>
<td>
<script>
InsertResult();
</script>
</td>
</tr>
</table>
В общем, делаем функцию, а внутри <td> вызываем ее
Из конференции Expert_FAQ
Вопрос
Нужно вставить на Ява-скрипте в нужное место страницы огромный кусок html-кода. Как это сделать?
Ответ
В основном файле делаем так:
<script language="JavaScript"
type="text/javascript"
src="path/inserted.js">
</script>
Создаем файл inserted.js, в котором размещаем построчно нужный html-код:
var s = 'этот огромный код\n' +
'и еще маленькая тележка';
/* Этим оператором выводим всю нужную информацию */
document.writeln(s);
rts
Вопрос
Как сделать, чтобы при загрузке сайта появлялось окно без возможности изменения размера, без полос прокрутки, меню адреса и т.д., в котором открывался бы файл http://some.host/document.htm ?
Ответ
<script language="JavaScript">
<!--
function openWin(href,name) {
window.open (href,name,'location=0,scrollbars=0,toolbar=no,directories=no, menubar=no,status=no,resizable=no,width=174,height=288');
}
//-->
</script>
Сама ссылка будет выглядеть так:
<a href="javascript:openWin('http://some.host/document.htm','window_name')">
Вопрос
Дано окно с двумя фреймами. В одном есть форма с текстовым полем и кнопкой. Какой нужен код, чтобы при нажатии кнопки в другой половине загружался тот УРЛ, который был введен в текстовом поле?
Ответ
<script language="javascript">
function openurl()
{
url=document.my_form.url.value;
top.frames["second_frame"].document.location=url;
}
</script>
<form name="my_form">
<input type="text" name="url">
<input type="button" onclick="openurl();" name=button>
</form>
Random
Вопрос
У меня на сайте есть несколько ссылок-картинок, изображения которых изменяются при наведении курсора. Как закэшить эти картинки в начале загрузки сайта, чтобы потом время не отнималось при диал-апе?
Ответ
В разделе заголовка создай массив:
var arImages = new Array();
Его элементам присваиваешь картинки:
arImages[0] = new Image();
arImages[0].src = "your_image0.gif_or_jpg";
arImages[1] = new Image();
arImages[1].src = "your_image1.gif_or_jpg"
Поставь функцию-переключатель:
function onoff(im,sr)
{
im.src = arImages[sr].src;
}
Укажи в тэгах ссылки и картинки следующее:
<a href=# onMouseOver="onoff(img1,1)" onMouseOut="onoff(img1,0)"><img src="…" name="img1"></a>
Andrew Leshchuk
Или другой вариант. Помести эту часть между
<head></head>
<script language="JavaScript">
<!function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v3.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
Здесь пропиши, какие картинки нужно предзагрузить.
<BODY onLoad="MM_preloadImages('pic1_sel.gif','pic2_sel.gif')">
Эту часть поставь где-нибудь в теле страницы:
<P ALIGN="CENTER">
<a href="link1.htm" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('Image1','','pic1_sel.gif',1)">
<img name="Image1" alt="Ссылка 1" border="0" src="pic1_norm.gif"></a></P>
<P ALIGN="CENTER">
<a href="link2.htm" onMouseOut="MM_swapImgRestore()"
onMouseOver="MM_swapImage('Image2','','pic2_sel.gif',1)">
<img name="Image2" alt="Ссылка 1" border="0" src="pic2_norm.gif"></a></P>
Andrej R. Sirvutis
Вопрос
Прошу помощи: есть на сайте директория «index», в которой 4 поддиректории с разными по содержанию файлами «index.htm» в каждом. Как можно реализовать поочередную замену на сайте через задаваемый период времени (в днях) файла «index.htm» на аналогичный с директории «index1» с возвратом заменяемого файла «index.htm» на указанный адрес?
Ответ
Допустим, структура каталогов такова:
index/
index/index1/index.html
index/index2/index.html
index/index3/index.html
index/index4/index.html
В каталог index кладете файл index.html следующего содержания:
<HTML><BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
//--То что нужно задать--
//дата начала отсчета времени
var be= new Date(2001,08,1); //(год,месяц, день) — учтите, месяцы нумеруются с 0, поэтому 08 — это сентябрь
//количество подкаталогов вида index1,index2…indexDIRCOUNT
var dircount=4;
//количество дней, через которое нужно менять страницу на следующую
var dayloop =7
//--все остальное без изменений--
var now =new Date();
var dif =
Date.UTC(now.getYear(),now.getMonth(),now.getDate(),0,0,0)-
Date.UTC(be.getYear(),be.getMonth(),be.getDate(),0,0,0);
dif /=(1000*60*60*24);
dif = Math.floor(dif / dayloop);
dif %= (dircount);
dif++;
var s="index"+dif+"/index.html";
location.href= s;
//-->
</SCRIPT>
</BODY>
</HTML>
Потом ссылаетесь только на этот файл, а он уже сам перенаправит пользователя в нужный каталог.
A.Z.
Вопрос
Нужно заставить скрипт многократно передавать данные формы, но методом POST. Предложения (VBS optional, JS exeptable)?
Ответ
Да, это можно сделать с помощью JavaScript. Будет выглядеть так, простой ХТМЛ-код с кнопкой отправки, а JavaScript будет нажимать эту кнопку сколько хотите.
<HTML>
<HEAD>
<meta http-equiv="Refresh" content="1">
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE>
</TITLE>
</HEAD>
<BODY onload="submit()">
<script Language="JavaScript"> function submit() { Timer= setTimeout(" (document.forreg.submit())",10); }
</script>
<form name="forreg" method="POST" action="mailto:vasya@lox.net"> area: љ
<input type="text">
<input type="submit" value="Go!" name="B1">
</BODY>
</HTML>
будет нажимать каждые 10 мс (если комп выдержит)
Из конференции Expert_FAQ
Вопрос
Как при наведении на ячейку таблицы изменить ее background, причем именно ячейки таблицы?
Ответ
Это пишешь перед всем
<SCRIPT language=JavaScript>
function Onmenu(obj) {
obj.style.cursor='hand';
obj.style.backgroundColor='#6666ff'
}
function Offmenu(obj) {
obj.style.backgroundColor='#ff0000'
}
</SCRIPT>
Тут представлена ячейка таблицы меняющая фон
<tr>
<td onmouseover="Javascript: Onmenu(this)"
onclick="location.href='link.htm'"
onmouseout="Javascript: Offmenu(this)" bgcolor="#FF0000» class="STYLE-MENU">
<a href="irk.htm">Новости</a>
</td>
</tr>
А вот так можно при наведении мыши изменить картинку 'kadr' на 'pic.jpg'
<a onMouseOver="MM_swapImage('kadr','','pic.jpg',1)"
onMouseOut=MM_swapImgRestore()
href="galleries/baikalsk/baikalsk.htm">Байкальский фестиваль</a>
Из конференции Inet_prog
Вопрос
Недавно осилил создание сайта и в связи с этим вопрос: как на сайте среди обычных доступных страниц создать страницу, которая бы открывалась только пользователям, знающим пароль, и как мне — администратору своего сайта — менять пароль?
Ответ
Предлагаемый способ запароливания не претендует на сверхсекретность, но, в свою очередь, у него нет никаких требований к хостеру (поддержка CGI,PHP,ASP…), достаточно лишь поддержки JavaScript на клиентской машине, что в подавляющем большинстве случаев присутствует. Взломать такую защиту не составит большого труда, но для среднестатистического пользователя она вполне пригодна.
Начнем. В удобное место своей страницы вставляем такое:
<input id=pa type=PASSWORD value="" size=20>
<button OnClick=CP()>OK</button>
Первая строка: поле для ввода пароля (с '*' вместо символов), size — определяет его ширину. Вторая строка: кнопка, при нажатии на которую проверяется корректность пароля и осуществляется переход на нужную страницу. Вообще-то вместо кнопки можно использовать любой элемент HTML — главное, чтобы обрабатывалось событие OnClick.
В самый конец файла, уже после </HTML> ставим такое:
<script src="p.jav"></script>
Здесь мы указываем, где у нас хранятся пароли и их обработчик, в данном случае файл p.jav.
Теперь помещаем на сервер файл «p.jav».
usera=3;
user0=new Array('Password','11.htm');
user1=new Array('Guest','12.htm');
user2=new Array('dddd','13.htm');
function CP(){
for(i=0;i
else location="nopass.htm"}
usera=?? — количество разных пользователей, для каждого из которых может быть присвоен свой пароль и своя страница. user0,user1…user9 — Описания паролей для каждого из юзверей и страниц, им присвоенных. Например, юзеру с паролем «Password» будет загружена страница «11.htm». nopass.htm в последней строчке скрипта будет грузится, если пароль указан неверно.
Sergey aka Z@K
Есть еще один вариант:
<script language="JavaScript">
function loadpage(){
document.location.href=document.frm.pswd.value + ".html"
}
</script>
<form name=frm>
Введите пароль: <input type=password name=pswd>
<input type=button value="Гут" onClick="loadpage()">
</form>
Создаем файл с паролем в качестве имени и расширением html. Что введешь в форму пароля — та страница и откроется. Если пароль неправильный — получишь 404.
Maxes
Вопрос
Как можно вынести скрипт в отдельный файл и потом ссылаться на него?
Ответ
Пишешь файл my.js такого типа:
-----------------
function my() {
alert("Primer")
}
-----------------
Потом в html файле подключаешь его…
<html>
<head>
<title>Primer</title>
<script language="javascript" src="my.js"></script>
</head>
<body>
<form>
</form>
</body>
</html>
Из конференции Expert_FAQ
Вопрос
Как можно получить случайное число в JavaScript в заданном диапозоне?
Ответ
Для генерации случайного числа мы воспользуемся JavaScript объектом Math, метод random которого генерирует случайное число от 0 до 1. Но, так как нам обычно нужны целые числа из некоего диапазона, то будет логичным написать небольшую функцию, которая все это будет делать автоматически. Вот как выглядит соответствующий фрагмент кода:
function getrandom(a,b)
{var min_random = a;
var max_random = b;
max_random++;
var range = max_random — min_random;
var n=Math.floor(Math.random()*range) + min_random;
return n;}
Перед использованием скрипта нужно лишь определить границы диапазона, в которых генерируется случайное число (соответственно, переменные min_random и max_random).
Из конференции Inet_prog
Вопрос
Есть следующее:
<SELECT NAME="show">
<OPTION value="0" <?if ($show=="0") {echo 'SELECTED';}?>>никуда не помещать</OPTION>
<OPTION value="1" <?if ($show=="1") {echo 'SELECTED';}?>>поместить на сайт</OPTION>
<OPTION value="2" <?if ($show=="2") {echo 'SELECTED';}?>>поместить в архив</OPTION>
<OPTION value="3" <?if ($show=="3") {echo 'SELECTED';}?>>удалить</OPTION>
</SELECT>
<? echo 'show=',$show;?>
Помогите на Java Script сделать так, чтобы после смены SELECTED $show сразу тоже сменялась бы и отображалась.
Ответ
Заменяешь <? echo 'show='…?> на <? echo '<input style="border-width:0pt;"
name=tshow value='.$show.'>';
а вот скрипт:
<SCRIPT LANGUAGE="JavaScript">
<!--
function ChangeShow(){
document.form.tshow.value=document.form.show.options[document.form.show.selectedIndex].value;
}
//-->
</SCRIPT>
У меня работает.
tericon
Вопрос
Нужно, чтобы пока все на странице не загрузится (рисунки и т.д.), ничего бы не показывалось, как только все загрузилось, сразу все видим! Если можно, сразу кодом.
Ответ
Вот код для Internet Explorer:
<HTML>
<HEAD>
</HEAD>
<BODY onLoad="document.all['dall'].style.display='block'">
<div id="dall" style="display:none">
сюда вписать все что находится на странице
</div>
</BODY>
</HTML>
Вот код для NetscapeNavigator 4.x:
<HTML>
<HEAD>
</HEAD>
<Body OnLoad="document.lall.visibility='show'">
<layer id="lall" visibility="hide" >
сюда вписать все что находится на странице
</layer>
</BODY>
</HTML>
Как это совместить для обоих браузеров — вот это уже проблема =)
A.Z.
Или еще — взять все содержимое страницы в таблицу с одной ячейкой и все! Но не показывать страницу пока она не загрузится — это плохой стиль, т.к. при медленном соединении люди просто не поймут, происходит что-то или нет. прелесть того, что гипертекст показывается по мере загрузки — то что его можно читать постепенно, не дожидаясь окончания, это было специально придумано еще на заре интеренета.
sandetsky
Вопрос
Как определить тип браузера у посетителей и перенаправлять их на соответствующие страницы?
Ответ
<html>
<body>
<script language="JavaScript">
<!--
// Сначала определяем разрешение
if (self.screen) {// для браузеров 4-тых версий
width = screen.width
height = screen.height
}
else if (self.java) {// для NN3 (enabled Java)
var jkit = java.awt.Toolkit.getDefaultToolkit();
var scrsize = jkit.getScreenSize();
width = scrsize.width;
height = scrsize.height;
}else{
width = height = 'x'// для прочих браузеров
}
// Теперь выполняем нужное действие
if (width < 641) {
location.href='640/index.html' }
else if (width == 800) {
location.href='800/index.html' }
else if (width == 1024) {
location.href='1024/index.html' }
else if (width > 1279) {
location.href='hi-res/index.html' }
else {
location.href='default/index.html' }
//-->
</script>
</body>
</html>
Glader
Вопрос
У меня такой вопрос
<a href="javascript:window.open('temp.htm','example','scrollbars,
resizable,width=300,height=200');void(0);">Текст</a>
<a href="javascript:window.open('temp2.htm','example','scrollbars,
resizable,width=300,height=200');void(0);">Текст2</a>
При нажатии ссылки открывается новое окно (temp.htm), а при нажатии второй ссылки окно (temp2.htm) открывается в окне первой ссылки (temp.htm). Как открыть каждую ссылку в новом окне?
Ответ
Я думаю, надо заменить во второй сссылке «example» на что-нибудь другое. Это идентификатор окна. Например вот так:
<a href="javascript:window.open('temp.htm','example1','scrollbars,
resizable,width=300,height=200');void(0);">Текст</a>
<a href="javascript:window.open('temp2.htm','example2','scrollbars,
resizable,width=300,height=200');void(0);">Текст2</a>
Из конференции Expert_FAQ
Вопрос
Нужен скрипт, показывающий текущую дату. Желательно в формате: ДД.ММ.ГГГГ.
Ответ
<script language="Javascript" type="text/javascript">
<!var strMon = new Array(" января "," февраля "," марта "," апреля "," мая "," июня "," июля "," августа "," сентября "," октября ",Ѓ ноября "," декабря ");
var objDate = new Date();
var vDay = objDate.getDay();
var vMon = objDate.getMonth();
var vYear = objDate.getYear();
document.write('Сегодня ' + vDay + strMon[vMon] + vYear + ' года');
//-->
</script>
Andrew Leshchuk
Вопрос
Как сделать, чтобы при загрузке инет-страницы открывалось еще одно окно, только чтобы можно было руководить размерами этого окна, то есть я укажу начальные размеры, а юзер не сможет больше изменить размеры, и чтобы окно появлялось за открытым документом, как бы сюрприз для юзера.
Ответ
Для этого нужно воспользоваться язык JavaScript:
<html>
<head>
<title>
</title>
<script language=JavaScript
type=text/javascript>
var x=window.open("", "",
"scrollbars=no,width=ширинаpx,height=высотаpx") x.blur()
</script>
; </head>
<body>
</body>
</html>
Из конференции Expert_FAQ
Вопрос
Как проверить, что в форму введено обязательно число.
И еще: как сложить числа, введенные в несколько ячеек формы? У меня они складываются как строки (т.е. 1+2=12)
Ответ
Ответ на вопрос 1.
Пусть переменная v — то, что надо проверить на наличие или отсутствие чего либо, кроме цифр
MyReg = new RegExp("\\D+");
if (!MyReg.test(v))
{
// В переменной v только цифры
} else
{
// В переменной v не только цифры
}
Объяснение: Есть такой объект в JavaScript RegExp. В первой строке мы его создаем. При этом мы будем сравнивать строку с образцом "\\D+", который говорит о том, что нам надо все, кроме цифр.
Ну и во второй строке мы методом test сравниваем переменную с образцом.
Ответ на вопрос 2.
Пусть v1 и v2 — переменные, которые надо сложить, тогда:
v3=eval(v1+"+"+v2);
Теперь v3 — это сумма переменных. Фактически функции eval передается строка :"число+число". Она ее и выполняет и выдает результат.
Из конференции Expert_FAQ
Вопрос
Из первой странички открываю новый документ в новом окне. Там есть форма с полем и кнопкой. Могу я прочесть в переменную первого документа содержимое поля второго документа?
Ответ
А почему бы и нет? Если ты открываешь новое окно через JavaScript, т.е. через window.open, ты можешь присвоить его какой-нибудь переменной, например:
myWindow = window.open(…)
а дальше действовать через этот самый myWindow.document, типа
myWindow.document.myForm.myCheckbox.value
Можно пойти дальше, т.е. при нажатии на кнопку второго документа вызывается функция из первого документа, например:
window.opener.myFunc1(document.myForm.myEdit1.value);
где myFunc1 — функция, определенная в первом документе, и ей в качестве параметра передается значения одного из полей формы.
Goltsov Dmitry
Вопрос
Как реализовать функцию автоматического занесения страницы в «Избранное»?
Ответ
<script>
window.external.AddFavorite(УРЛ, ЗАГОЛОВОК);
</script>
Игорь Фролов
Вопрос
Подскажите, как мне с помощью document.write() ввести строку
onmouseover='dropit(event,(nn6)?'dropmenuAll'
:dropmenuAll,
'document.dropmenuAll',445)';
Я пробовал так:
document.write("onmouseover='dropit(event,(nn6)
?'dropmenuAll':dropmenuAll,
'document.dropmenuAll',445)';");
но ничего не получается
Ответ
И ничего не должно получаться, попробуйте строку разбить на части, т.е:
document.write("string 1" + "string 2" + "stri" + "ng 3")
или же тоже по кусочкам присвоить переменные, а потом вывести переменные:
var x="string 1"
var x2="string 2"
var x3="stri"
var x4="ng 3"
document.write(x + x2 + x3 + x4)
Из конференции Expert_FAQ
Вопрос
Как сделать выпадающий случайный номер, типа: 878787-7877-8788878?
Ответ
Самый простой способ — это метод объекта Math.random().
Он выдает случайное число больше 0 и меньше 1, Вы его умножаете на 10, округляете методом Math.round(n), math.ceil(n) или Math.floor(n); выдается число от 0 до 10. Если необходимы определенные числа, например, только 7 или 8, — надо поставить генерацию в функцию, где выполняется while до тех пор, пока не «родится» нужное число.
Есть и более изощренный способ: использование тригонометрических функций от текущего времени, но тут надо ставить задержку выполнения, желательно тоже случайную и достаточно большую — примерно от секунды до, скажем, 5. В таком случае числа выглядят «более» случайными.
*******
Для получения чисел из заданного диапазона, отличного от 0-10, организовывать цикл несколько громоздко. Гораздо проще использовать формулу:
А = round(random()*(Max-Min))+Min
Например, для получения чисел из диапазона 23 — 29:
А = round(random()*6)+23
Функция "random()" может быть стандартной или тригонометрической и выдавать случайные числа из диапазона 0 — 1.
krenon
Вопрос
Помогите, пожалуйста!
1. Как сделать preload картинок на странице?
2. Как сделать скрипт, чтобы программы, вроде Teleport и др., скачивающие директории сайта, не могли этого делать. (Я видел на одном сайте такую фишку, начинаешь скачивать и вылетает сообщение, типа запрещено скачивание)
Ответ
1) Для того, чтобы картинки загружались предварительно надо в дескрипторах <script…> </script> написать:
var name_image=new Image(width, heght)
name_image.src=URL
Например нам нужно чтобы предварительно загрузилась картинка под именем xxx.jpg в папке images
var xxx_kartinka=new Image(35, 35)
xxx_kartinka.src="../images»
2) Такая функция есть на многих хостах.
Из конференции Expert_FAQ
Вопрос
Как сделать, чтобы при клике на маленькую картинку, при наведении на которую меняется курсор, в новом окне с заданными параметрами окрывалась она же бОльшего размера? Нужно, чтобы новое окно было равно размерам большой картинке, без отступов и без resize.
Ответ
function zoom(){
paint_win = window.open('', 'PhotoWindow',
'width=' + (paint[gal][pnt].zx + 20)
+ ' ,height=' + (paint[gal][pnt].zy + 20) +
', resizable=0, scrolbars=0');
// собственно вот окно, и открывается этим window.open, а размеры width и height приходится задавать заранее :(
paint_win.document.open();
paint_win.document.write('<html><head>');
// а дальше просто всякие красивости
// для ИЕ фомируется заголовок окна. NN все равно
не хочет ничего понимать по-человечески
if (isBrowserOK) {
var strtitle = '';
if (paint[gal][pnt].Author != '') strtitle += paint[gal][pnt].Author;
if (paint[gal][pnt].Name != '')
{
strtitle += (gal == 7) — ', ' : ' <';
strtitle += paint[gal][pnt].Name;
strtitle += (gal == 7) — '' : '>';
}
if (strtitle == '') strtitle = Gallery[gal].Name;
paint_win.document.write('<title>' + strtitle + '</title>');
}
// ну и, собственно, тело документа paint_win.document.write('</head><body><table
width=100% border=0
cellspacing=0 cellpadding=0><tr><td
align=center valign=middle><img
src="images/gallery/' + gal + '/' + pnt +
'z.jpg"
border=0></td></tr></table></body></html>')
;
paint_win.document.close();
}
Andrew Leshchuk
Вопрос
Как сделать раскрывающееся меню, как на Yahoo, например, но попроще?
Ответ
<SCRIPT LANGUAGE="JScript">
function doit() {
if (smth.style.display=="none")
{
smth.style.display="";
}
else
{
smth.style.display='none';
}
}
</SCRIPT>
<p onclick="doit()"
style="cursor:hand">Menu</p>
<p id=smth style="display:none">
<table width=90>
<a href="doc1.htm">Document #1</a>
<a href="doc2.htm">Document #2</a>
<a href="doc3.htm">Document #3</a>
</table>
</p>
Вопрос
Делал раскрывающийся список по книге А. Матросова «HTML 4.0 в подлиннике», но страница показывает ошибку (строка 32, символ 1, предполагается наличие объекта). Пробовал добавлять тэги html, body, рисовал item.jpg, все напрасно.
Скажите в чем ошибка?
Ответ
Все намного проще:
<select name="color">
<option value="black">Черный</option>
<option value="white">Белый</option>
<option value="red">Красный</option>
<option value="green">Зеленый</option>
<option value="blue">Синий</option>
<option value="cyan">Голубой</option>
<option value="yellow">Желтый</option>
</select>
Из конференции Expert_FAQ
Вопрос
Я занимаюсь сайтостроением, и передо мной стоит следующее задание:
Человек заказывает журнал. При заполнении анкеты появляется порядковый НОМЕР анкеты. Как мне сделать так, чтобы после нажатия кнопки «ОК» этот НОМЕР увеличивался на одну единицу и где-то запоминался? Затем при следующем появлении анкеты этот НОМЕР считывался и появлялся. Как лучше сделать эту операцию? И возможно ли это сделать с помощью только JavaScript — без cgi-скриптов?
Ответ
Это можно сделать, используя файлы cookie:
<script language="JavaScript"> function get_cook()
{
cook_str=unescape(document.cookie) eq_loc=cook_str.indexOf("=") cook_val=cook_str.substring(eq_loc + 1) return cook_val
}
// Получение значения var number=get_cook()
// Проверка существования файла куки if (!number)
{
// если нет значение, то анкета заполняется первый раз number=1 writeln("Порядковый номер анкеты: " + number)
}
else
{
// в противном случае уведичивается на еденицу number++ document.writeln("Порядковый номер анкеты: " + number)
}
//Задание значения document.cookie="counter_cook"+number </script>
Из конференции Expert_FAQ
Вопрос
Как через JavaScript изменить содержание iframe?
Так не работает:
<HTML>
<HEAD>
<script language=jscript>function change_content(){Content.src="Page2.htm";}</script>
</HEAD>
<BODY>
<INPUT type="button" value="Button" onclick="change_content()">
<iframe id="Content" src="Page1.htm"></iframe>
</BODY>
</HTML>
Ответ
<HTML>
<HEAD>
<script language="jscript">
function change_content()
{
document.all.Content.src="Page2.htm";
}
</script>
</HEAD>
<BODY>
<INPUT type="button" value="Button" onclick="change_content()">
<iframe id="Content" src="Page1.htm"></iframe>
</BODY>
</HTML>
Novikov Dmitry
Вопрос
Каким образом вычислить возраст человека, зная его точный день рождения?
Ответ
<SCRIPT LANGUAGE="JavaScript">
<!today = new Date()
den_r = new Date("April 09, 1972")
msPerDay = 24 60 60 * 1000 ;
// количество миллисекунд в дне
daysLeft = (today.getTime() ? den_r.getTime()) / msPerDay;
// сколько дней прошло
daysLeft = Math.round(daysLeft);
// округление
let= Math.floor(daysLeft/365);
// сколько лет прошло mes= Math.round((daysLeft-let*365)/30);
// сколько месяцев после полного к-ва лет
document.write("Сейчас Пете Пупкину " + let+" лет
и "+mes+" месяца(ев)");
// вывод результата
// -->
</SCRIPT>
Сергей Паюк
Или вот такой, уже переработанный, скрипт:
<SCRIPT LANGUAGE="JavaScript">
<!function vozrast(den_r_s)
{
var today = new Date();
// функция для подсчета количества лет и месяцев между датой var den_r = new Date(den_r_s);
// введенной и текущей.
var let=today.getYear()-den_r.getYear();
//кол-во лет (условно) var mes=today.getMonth()-den_r.getMonth();
//кол-во месяцев (условно) var dney = today.getDate()-den_r.getDate();
var den__r = den_r.getDate();
// чисто день, когда родился var den__s = today.getDate();
// сегодняшнее число
if (let > 1900) { let = let -1900 }
// из-за нескладухи с Оперой
if (mes < 0)
{ let = let — 1
// количество лет mes = 12 — Math.abs(mes) }
// количество месяцев
if ((mes == 0) && (den__r>den__s))
{ mes = 12
let = let — 1
}
// осталось меньше месяца до Дня рождения
if ((mes == 0) && (den__r<den__s)) { mes = 0 }
// день рожд уже прошел if ((dney < 0) && (mes != 0))
{ mes = mes — 1 }
// количество месяцев
let_n = let % 10;
var let_s = '';
if (let_n == 1) { let_s = ' год '; }
if ((let_n > 1) && (let_n < 5)) { let_s = ' года
'; }
if ((let_n == 0) || (let_n == 9) || ((let_n > 4)
&& (let_n < 9))) { let_s = ' лет '; }
if (mes == 1) { mes_s = ' месяц '; }
if ((mes > 1) && (mes < 5)) { mes_s = ' месяца '; }
if ((mes==0) || ((mes > 4) && (mes < 13)))
{ mes_s = ' месяцев '; }
var str_show1 = let+let_s;
var str_show2 = mes +mes_s;
if (mes == 0)
{ var str_show2 = ' '; }
if ((today.getMonth() == den_r.getMonth()) &&
(today.getDate() == den_r.getDate()))
{
str_show1 = 'сегодня ровно ';
str_show2 = let+let_s;
}
if ((mes == 0) && (den__r<den__s))
{
str_show1 = 'уже ';
str_show2 = let+let_s;
}
if ((mes == 0) && (den__r>den__s))
{
str_show1 = 'почти ';
str_show2 = let+let_s;
}
document.write(str_show1+str_show2);
}
// -->
</SCRIPT>
Сергей Паюк
Использование:
<SCRIPT LANGUAGE="JavaScript">
<!vozrast("April 09, 1972")
// использование функции "Возраст" // -->
</SCRIPT>
Сергей Паюк
Вопрос
Каким образом я могу поставить на свой сайт Голосование?
Ответ
Например,
используя mailto как action для формы — в этом случае используется почтовая программа клиента и отсылается сообщение на указанный адрес. Пример:
<html>
<head>
<title>EMAIL TEST</title>
</head>
<body>
<center>
<h1>ВОПРОС: </h1>Как вам нравится погода сегодня?
</center>
<form action="mailto:you@mail.ru?subject=Result" enctype="text/plain" method="post">
<table border="1" width="90%">
<tr>
<td width=1>
<input type="radio" name="result" value="Очень" checked>
</td>
<td>Очень</td>
</tr>
<tr>
<td>
<input type="radio" name="result" value="Не очень">
</td>
<td>Не очень</td>
</tr>
<tr>
<td>
<input type="radio" name="result" value="Совсем не нравится">
</td>
<td>Совсем не нравится</td>
</tr>
</table>
<input type=submit value="Голосовать" name="Submit">
</form>
</body>
</html>
Когда пользователь нажимает кнопку «Голосовать» на адрес you@mail.ru отправится e-mail примерно следующего содержания:
result=Очень
Submit=Голосовать
Из конференции Expert_FAQ
Вопрос
Кто какой Java-script редактор посоветует?
Ответ
Visual Studio.
EditPlus2. Весит немного, синтаксис подсвечивает. Поддерживает не только JavaScript. Есть шаблоны для вставки стандартных команд и кое-какая реализация CodeTemplates. Это когда пишем допустим if <пробел> а редактор автоматом генерит:
<p>
<p;>
if ()
{
<p>
<p>}
<p>
<p>
HomeSite. Но уж больно он тяжеловесный — чтобы изменить пару строчек в скрипте, такую махину грузить…
Если нужны какие-нибудь стандартные скрипты, можно поюзать Macromedia DreamWeaver (подсвечивает Java Script) или SNK Visual HTML Workshop.
ScriptBuilder (во всех смыслах последняя версия — 3.0, дальнейшие разработки не ведутся года с 1999, однако вещь удобная).
Митрич, A.Z.
Мой совет — используете Блокнот. Так будете отлично знать JavaScript и HTML.
vbscripter
Вопрос
Мне нужно сделать так:
если юзер не ввел в форму текст, то чтобы курсор возвращался обратно в форму, до тех пор пока что-нибудь не введут.
Ответ
<script
language=JavaScript
type=text/javascript>
function vernis(mesto)
{ if (mesto.value=="")
{ alert("Введи че-нидь") mesto.focus() }
else if (mesto.value=="dаn")
{ alert("Ты крут, на тебе розовый цвет")
document.bgColor='pink' }
else { } }
</script>
<input type="text"
width=35
onBlur="javascript:vernis(this)">
Поясняю:
Если юзер ничего не вводит, то ему говорят введи что-нибудь, и курсор возвращается в форму, если юзер вводит dan, то что-нибудь происходит (в нашем случае цвет документа меняется), если же что-нибудь другое вводит (отличное от пустой строки и dan), то ничего не происходит. Тут сами поменяйте под свой лад.
Из конференции Expert_FAQ
Вопрос
Есть меню на JavaScript с элементами развертывания (жмешь на пункт — открываются подменю). При этом перезагружается вся страница. Подскажите, как можно сделать чтобы меню разворачивалось и наоборот, не перезагружая всю страницу.
Ответ
Смотри http://www.swed.com.ua/links.html
Тут я реализовал подобное. Однако недостаток в том, что грузиться весь файл размером ~108 kb.
Swed
Вопрос
У меня на странице, при ее загрузке вылетает куча рекламы. Можно ли от нее избавиться с помощью JavaScript?
Ответ
Скорее всего нет, если только не вписан какой-нибудь скрипт по открыванию рекламы, и то, если вы его удалите, то в большинстве случаев, хост опять его туда впишет!
Из конференции Expert_FAQ
Ну частично можно! Но это в том случае, если хост вешает вам рекламу после кода. Т.е. после </html>
Пиши после </html>:
<Script language="JavaScript1.8">
<Script language="JavaScript5.6">
<Script language="JavaScript9.3">
Таким образом ты объявляешь несуществующую версию JavaScript и код не выполнится!
Sferacom
Вопрос
Можно ли узнать в процессе подгрузки с помощью JS, сколько процентов загрузилось картинки, но не myimg.comlete, которое говорит что загрузка завершена.
Ответ
Нельзя. Только загружена картинка полностью или нет.
Вопрос
Я в js пока не очень разбираюсь, поэтому хотел бы уточнить, что в нижеприведенном коде может быть неправильно? Он предназаначен для показа скрытого слоя. Во Фронтпейдже пишет, что типа document.layers не является объектом…
<!--Функция для видимости/невидимости слоя-->
<SCRIPT LANGUAGE="javascript">
<!--
function showLayer(layerName)
{
document.layers[layerName].visibility='visible'
}
function hideLayer(layerName)
{
document.layers[layerName].visibility='hidden'
}
//-->
</SCRIPT>
<STYLE TYPE="text/css">
/**определяем параметры слоя**/
#Mylayer
{
z-index: 3;
position: absolute;
top: 35px;
left: 375px;
visibility: hidden;
}
</STYLE>
</head>
<body>
<!--вызов функции-->
<a href="#" onClick="showLayer('Mylayer')" >Push it</a>
<!--содержание слоя в теге div-->
<div id="Mylayer">
<table width="100" height="60">
<tr>
<td>Menu</td>
</tr>
</table>
</div>
Ответ
Вместо document.layers[layerName].visibility='hidden'
пиши document.all[layerName].style.visibility='hidden';
Или так:
document.getElementById('Nav3').style.visibility='visible';
Этот способ работает и в IE и в Mozille, но когда мы его прописываем не как функцию, а как непосредственно свойства к обработчику событий, т.е. так:
<a href="#" onClick="document.getElementById('Mylayer').style.visibility='visible'" onBlur="document.getElementById('Mylayer').style.visibility='hidden'">Push it </a>
Если же мы захотим сделать это все дело в виде функции, то придется, наверное, делать код под каждый браузер. Вроде бы так:
<!--Функция для видимости/невидимости слоя-->
<SCRIPT LANGUAGE="javascript">
<!--
function showLayer(layerName)
{
LayObj = eval("document.getElementById('" + layerName + "').style");
LayObj.visibility='visible';
}
function hideLayer(layerName)
{
LayObj = eval("document.getElementById('" + layerName + "').style");
LayObj.visibility='hidden';
}
//-->
</SCRIPT>
И вроде бы для Netsсape style.visibility заменяется просто на visibility.
Andrey, tericon, A.Z.
Вопрос
Мне нужна программа, которая заменяла бы определенный текст в файле (допустим index.html) на другой.
Ответ
Это достаточно простая операция и она встроена во множество HTML-редакторов. Я пользуюсь Macromedia HomeSite. В нем есть функция Extended Replace (Search|Extended Replace).
Она позволяет заменять куски текста в текущем документе, во всех открытых в HomeSite документах, в проекте HomeSite или во всех файлах в указанной папке (расширения файлов, в которых следует производить замену так же можно указывать). Возможна также замена регулярных выражений, есть куча опций: учитывать регистр (Match Case), пропускать тэги при поиске (Skip tags while searching), создавать backup (Make backups) и другие.
Точно такая же система расширенной замены присутствует в другом редакторе от Macromedia — ColdFusion.
Из конференции Expert_FAQ
Вопрос
Есть несколько рассылок. Нужна форма для подписки. В поле юзер будет вносить email и выбирать, на какую из данных рассылок хочет подписаться.
Ответ
Итак, как бы это сделал я…
Для начала создаем страничку с формой для заполнения. Оформление странички — дело вкуса, но включаем в ее код следующее:
<table>
<script language="JavaScript">
<!pr=window.location.protocol;
hs=window.location.hostname;
ss=pr+'//'+hs+'/cgi-bin/esend.cgi';
var s='<form method="POST" action='+ss+'>';
document.writeln(s); -->
</script>
<tr>
<TD>
<b>Введите Ваше имя:</b>
</TD>
<TD>
<INPUT TYPE="text" name="Name" Value="" size="44">
</TD>
</tr>
<tr>
<TD>
<b>Ваш E-Mail :</b>
</TD>
<TD>
<INPUT TYPE="text" name="EMail" Value="" size="44">
</TD>
</tr>
<tr>
<TD colspan="2">
<p align="center"><b>Выберите интересующую рассылку (одну):</b>
</TD>
</tr>
<tr>
<TD colspan="2">
<input type="checkbox" name="C1" value="ON">Основные
проблемы грибоводства<BR>
<input type="checkbox" name="C2" value="ON">Некоторый
вопросы дрожжеведения
</TD>
</tr>
<tr>
<TD>
<p align="center">
<INPUT TYPE="submit" NAME="submit" VALUE="Подтвердить">
</p>
</TD>
<TD>
<p align="center">
<INPUT TYPE="reset" VALUE="Очистить">
</p>
</TD>
</tr>
</TABLE>
Дальше — оформляй страничку как захочешь…
Теперь… Если ты заметил, то данный код ссылается на скрипт
esend.cgi, который должен быть в папке /cgi-bin/ твоего сервера. Этот
скрипт получает от данного кода введенные параметры и обрабатывает их.
Примерно этот скрипт может выглядеть так:
#!/usr/bin/perl
#esend.cgi
#раздел процедур и функций
sub urldecode{
local($val)=@_;
$val=~s/\+/ /g;
$val=~s/%([0-9a-hA-H]{2})/pack('C',hex($1))/ge;
return $val;
}
#конец раздела процедур и функций
if($ENV{'REQUEST_METHOD'} eq 'GET'){$query=$ENV{'QUERY_STRING'};}
elsif($ENV{'REQUEST_METHOD'} eq 'POST')
{sysread(STDIN,$query,$ENV{'CONTENT_LENGTH'});}
#занесение данных в файл
#if($query ne ''){
@formfields=split(/&/,$query);
foreach(@formfields){
if(/^Name=(.*)/){$Name=urldecode($1);} #получение имени клиента
if(/^EMail=(.*)/){$EMail=urldecode($1);} #получение его EMail
if(/^C1=(.*)/){$C1=urldecode($1);} #инфа по подписке №1
if(/^C2=(.*)/){$C2=urldecode($1);} #инфа по подписке №2
}
$Owner="Твой сайт"; #это от кого, т.е. от тебя
if($C1 eq "ON")
{
$Mess="SUBSCRIBE Основные проблемы грибоводства";
}
if($C2 eq "ON")
{
$Mess="SUBSCRIBE Некоторые вопросы дрожжеведения";
}
open(MAIL, '| /usr/bin/sendmail -t -oi'); #отправка запроса
$Message=$EMail."\n".$Message;
#если для отправки EMail используешь другую программу или она
#находится в другом месте, то исправь строчку отправки запроса
print MAIL <<EOF;
To: someRobot\@domail.com #писать именно так \@
From: $Owner
Subject:
$Message
EOF
close MAIL;
#раздел программ
print "Content-Type: text/html\n\n";
print "<html><head>\n";
print "<title>Subscribe Service</title>\n";
print "<META content=\"text/html; charset=windows-1251\" http-eqiuv=Content-Type>\n";
print "</head><body>";
print "<font color=#000000>Вы зарегистрированы как подписчик. Спасибо!</font>";
print "</body></html>";
Messire
Вопрос
Почему, когда копируешь текст программы из работающего скрипта и вставляешь его в новый файл, то появляется сообщение об ошибке в 1 строке и в 1 символе.
Ответ
1. Возможно ты копируешь текст кода вместе с тегами <script>. Этого делать не надо. Только код
2. Возможно тот код, который выполняешь до подключаемого кода неверен.
3. Проверить можно так: в подключаемом файле вместо кода пишешь document.alert('ля-ля-ля'); Если выдасть это сообщение, то ошибка в самом коде, если нет, то ошибка в подключении.
Из конференции Expert_FAQ
Вопрос
Подскажите, как с помощью JavaScript удалить, например, содержимое ячейки таблицы и прописать в нее новые данные?
Ответ
Объектная модель в IE позволяет с документом делать все что хочешь. Вплоть до удаления и замены тэгов.
<table>
<tr>
<td ID="a">12345467</td>
<td ID="b">12345467</td>
<td ID="c">12345467</td>
</tr>
</table>
<script>
document.all.a.innerText="54321"
document.all.b.innerHTML="54321"
document.all.c.innerHTML="<b>987654321</b>"
</script>
Из конференции Inet_prog
Вопрос
С каким языком программирования схож по сложности язык JavaScript, в чем отличия Java от JavaScript?
Ответ
JavaScript по «сложности» (изучения) похож на Basic (в частности Visual). Есть даже альтернатива Джваскрипту — VBScript. Только в отличие от VisualBasic-а основной упор сделан на работу с объектной моделью браузера, но и просто работать с объектами можно, только нельзя скомпилировать программу на JavaScript в отдельное приложение.
Java это вообще отдельная песня. Это объектно-ориентированный язык программирования, «выросший» из C++. На нем можно написать что угодно, но он и гораздо сложнее JavaScript, т.е. это разные весовые категории. Для работы с интернетом (браузером) на Java пишутся апплеты (applets) которые обрабатывается специальной Java-машиной (JavaScript обрабатывается твоим браузером).
Также на Java можно написать отдельные программы (и скомпилировать их в исполняемые файлы), тогда нет ограничений присущих апплетам (из соображения безопасности), например на доступ к локальным файлам и дискам.
Из конференции Expert_FAQ
Вопрос
Подскажите хороший сайт где можно взять (в большем количестве)J скрипты.
Ответ
http://scriptic.narod.ru/
http://www.softlinks.ru/
Из конференции Expert_FAQ
Вопрос
Как нужно связывать внешний файл с некоторой функцией JavaScript (например: «functions.js») с ее вызовом внутри HTML документа.
Ответ
Например есть файл ad.js и в ней функция reklama(). Нужно импортировать функции из внешнего файла пустым блоком script с атрибутом src равным имени внешнего файла (третья строчка в примере). А затем уже где надо вызывать функции так же, как и если бы они были в html файле.
<HTML>
<Head>
<Script language=javascript src="ad.js">
</Script>
<Script language=javascript>
<! function showad () { //---код- reklama () //---код- } -->
</Script>
Из конференции Expert_FAQ
Вопрос
Подскажите пожалуйста пример скрипта, который бы очищал текст из текстбокса, как только юзер кликает на него.
Ответ
Вот пример, если я правильно понял про «текстбокс» и «кликание» :-)
<html> <head> <title>Пример</title> </head> <body> <textarea rows='5' cols='50' onMouseDown='this.value=""'> </textarea> </body> </html>
Из конференции Expert_FAQ
Вопрос
Где можно взять такой скрипт, чтобы при загрузке страницы определялось время дня и вместе с этим загружалась картинка соответствующая этому времени?
Ответ
<SCRIPT language=JavaScript>
theDate = new Date();
theHours = theDate.getHours();
if (theHours >= 0) theText = "<img src='Доброй ночи.gif'>";
if (theHours >= 4) theText = "<img src='Доброе утро.gif'>";
if (theHours >= 11) theText = "<img src='Доброе день.gif'> ";
if (theHours >= 18) theText = "<img src='Добрый вечер.gif'>";
if (theHours >= 22) theText = "<img src='Доброй ночи.gif'>";
document.writeln (theText);
</SCRIPT>
Из конференции Expert_FAQ
Copyright 2000-2004 Сообщество Чайников
Контактная информация