faqs.org.ru

 Главная > Программирование > Web-программирование >

FAQ по языку JavaScript

Секция 1 из 2 - Предыдущая - Следующая

From: "CoModerator of RU.JAVASCRIPT" <CoModerator.of.RU.JAVASCRIPT@p1006.f175.n5030.z2.fidonet.org>
Date: Fri, 20 Sep 2002 10:26:52 +0400
Subj: RU.JAVASCRIPT FAQ

FAQ I. Docs and Links
1.пошлите меня туда, где есть какие книжки
(можно и на английском) по эхотагу, лучше в электронном виде

>Книги по JavaScript:
>>From: "Vitaly Vasilchuk" <vitaly@basis.ru.kiev.ua>

www.izone.com.ua/info/download_web.html

>>From : shilk@telecom.chita.ru

Вот что я нарыл в свое время:

1) Наталия Бельтикова, Ирина Кузина. Методы и функции JavaScript.
http://webims.virtualave.net/docs/js/jsrus/index.htm

2) Небольшой справочник по JavaScript by Ataev RUSlan
http://gid.spb.ru/RUS/Java.htm

3) JavaScript Шаг за шагом by Андрей Кузин
http://www.mjk.msk.ru/~dron/html/js.shtml

>>From : Artem Babadzhanyants

http://developer.netscape.com
http://www.javascript.com
http://www.javascript.ru
http://www.citycat.ru/doc/
http://godegisel.protey.ru/library/docs/www/

>>From: Пушко Василий
http://javascripts.boom.ru/
примечание from Comoderator: "новички - читайте там полезные статьи!"


>>From: Alexey Medvedev 2:463/733.137

www.bratta.com/dhtml/ - прикольный JS типа Flash/vector graphics
много примеров для внедрения в свои странички.

www.dansteinman.com/dynduo/  - кросс броузер DHTML API низкого
ровня (IE4,5 , NN4 , Mozilla5). Разрабатывается под GNU license.
сть реализация widget-ов (кнопки, check, list, menu, window, scroll .etc.)

www.htmlguru.com - "родоначальник" DHTML :)
стильно оформленый сайт с учебниками по DHTML

deep.kiev.ua - пример реализации графов для NN-DHTML
(масштабирование под окно, обработка resize event без reload - NN).

deep.kiev.ua/~netlib/ - библиотека по webdesign. Основная часть
освящена JS , DHTML с примерами (например как _создавать_ GIF и PNG
артинки на JS в NN или как сделать еффект hover в NN ).


>>From: Evgenij Koronin <koronin@yahoo.com>

W3 concorcium resources
http://www.w3.org/MarkUp/W3 - HyperText Markup Language
http://www.w3.org/MarkUp/W3 - XHTML Recommendation
http://www.w3.org/CSS/W3 - CSS and Style
http://www.w3.org/DOM/W3 - Document Object Model
http://www.w3.org/XML/W3 - XML
http://www.w3.org/TV/W3 - TV and the Web

HTML, CSS and Javascript
http://www.blooberry.com/indexdot/html/ - HTML Reference
http://www.blooberry.com/indexdot/css/ - CSS Reference
http://www.htmlib.com/where.htm - HTMLib 4.0 - complete HTML/CSS/Javascript
reference (download)

Complete Libraries
http://msdn.microsoft.com/workshop/ - MSDN Workshop
http://developer.netscape.com/docs/index.html - Netscape DevEdge Documentation
Library
http://www.wdvl.com - Web Developer's Virtual Library


Articles and Tutorials
http://builder.cnet.com - CNET Web Builder
http://www.siteexperts.com - Site Experts
http://www.webdeveloper.com - Web Developer
http://www.zdnet.com/devhead/ - ZDNet Developer Head
http://hotwired.lycos.com/webmonkey/ - Hotwired Webmonkey
http://developer.earthweb.com/ - Earthweb Developer
http://www.webreview.com/ - Web Review
http://www.webreference.com/ - Web Reference
http://www.1001tutorials.com/ - 1001 Tutorials


вставляйте свои ссылки!


FAQ II. General javascript

1. так, чтобы на событие onclick - фон менялся?

>> From : Vitaly Karmazinsky                  2:5020/400      Mon 13 Dec
>> 99 12:24

Q> так, чтобы на событие onclick - фон менялся?

<A HREF="http://www.yahoo.com"
onMouseOver="document.bgColor='red'">Yahoo</a>

Будущий фон определяется между кавычками  ' '

red -  красный;
black - черный;
yellow - желтый;
white -  белый;
green - зеленый;
brown - коричневый;

bgColor - фон;
fgColor - текст;
linkColor - цвет ссылки;


>>From Evgenij Koronin <koronin@yahoo.com>
<a href="javascript:document.bgColor='red'">change color</a>


2. Вобщем, надо если включен js показать один кусочек html кода, а если
выключен другой.

From: "Michael A. Kangin" <mak@complife.net>

<script>
document.writeln('Один кусочек')
</script>
<noscript>
Другой кусочек
</noscript>

3. А как на JavaScript по гипеpccылке можно пеpедать
   паpаметp (напpимеp название файла) cо одной cтpанички
   на дpугую? Идея cоcтоит в том, чтобы cтpаничка pаботала
   по-pазному в завиcимоcти от того, откуда на неё вошли.

   >> From : Michael A. Kangin                   2:5020/400      Fri 28
   >> Jan 00 03:26

1. Откуда пришли на данную страничку, можно попробовать узнать по
document.referrer

2. Параметры можно передавать как <a href="file.htm?parameter=value">, и
вытаскивать их как parameter=document.location.search;


4.  Помню, что для того, чтобы пеpедать паpаметp, надо:
<A HREF="webpage.htm?param1=value1&param2=value2&...">ssd</A>
А вот как добыть значения паpаметpов, не помню.

>>From: Evgenij Koronin <koronin@yahoo.com>
Modified code taken from MSTV OneWorld UI
-+--------------------------------------------
var QueryString = new Array();
QueryString["_"]="";

function unspace( qs_element ) {
 return qs_element.split( '+' ).join( ' ' );
}

if ( location.search.length > 1 ) {
 var qs_query = location.search.substring( 1, location.search.length );
 var qs_pairs = qs_query.split( '&' );

 for ( var qs_index = 0; qs_index < qs_pairs.length; qs_index++ ) {
  var qs_element = qs_pairs[qs_index].split( '=' );
  QueryString[qs_element[0]] = unspace( unescape( qs_element[1] ) );
 }
}
-+--------------------------------------------
использовать:  var myVar = QueryString["parameter"];

5. пoдcкaжитe plz кaк cдeлaть в html ccылкy кoтopaя бы paбoтaлa кaк ктoпкa
back в бpoyзepe

>> From : Igor Kanshin                        2:463/1124.50   Sat 05 Feb
>> 00 11:39

<a href="JavaScript:history.back()">Back</a>

6. Пpедположим надо создать новое окошко, но не на основе yже сyществyющего
html-файла, а сфоpмиpовать его на JavaScript и потом yже откpыть в новом окне.
>> From : Andrew Konovalov                    2:5030/1139     Sun 13 Feb
>> 00 09:11
    newWindow = window.open(...);
    newWindow.document.write(...);

>>From: Evgenij Koronin <koronin@yahoo.com>
 newWindow = window.open("");
 s=your_html;
 with (newWindow.document)
 {
  open();
  write(s);
  close();
 }



7. А как можно загрузить картинку до того,
как начнёт загружаться остальная часть страницы?

>> From : V.Kobychev                          2:5020/400      Mon 21 Feb
>> 00 15:44
<html><head>
<script LANGUAGE="JavaScript">
<!--
function PreloadImages()
{
 if (document.images)
 {
  var imgFiles = PreloadImages.arguments;
  var preloadArray = new Array();
  for (var i=0; i<imgFiles.length; i++)
  {
   preloadArray[i] = new Image;
   preloadArray[i].src = imgFiles[i];
  }
  }
}
PreloadImages('picture1.jpg','picture2.jpg','picture3.gif'); // и еще
сколько угодно картинок
 // -->
</script>
<body>
....
</body>
</html>

8. Как этой хpенью пользоваться ????? Написанно window.opener.ля-ля ;((

>> From : Vitaly Karmazinsky                  2:5020/400      Fri 17 Mar
>> 00 13:45
window.opener.document.my_form.my_element.value = 'test';

Вот таким кодом можно вставить данные в форму
родительского окна. Работает везде.

9."Nikolai Levtchenko" <Nikolai.Levtchenko@p73.f4001.n5020.z2.fidonet.org>
wrote in message >
> Существует ли сабж? Чтобы можно было пошагово выполнять, проверять
сосотояние
> переменных и т.д.?
>

http://msdn.microsoft.com/scripting/debugger/default.htm
Очень удачный отладчик от Netscape
ftp://ftp.netscape.com/pub/jsdebug/rtm/jsd10su.jar


FAQ III. Browser, mouse buttons, cookies, new windows etc.

1.у кого-нибудь есть универсальный код работы с subj (функции типа setcookie,
getcookie, killcookie..... )

>>From: Evgenij Koronin <koronin@yahoo.com>
//---------------------------------------------------------------------
// Function to return the value of the cookie specified by "name".

// Parameter:
//     name     String object containing the cookie name.

// Return:      String object containing the cookie value, or null if
//              the cookie does not exist.
//---------------------------------------------------------------------
function GetCookie (name)
{
    var arg  = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i    = 0;

    while (i < clen)
    {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg)
          return getCookieVal (j);
        i = document.cookie.indexOf(" ", i) + 1;
        if (i == 0) break;
    }
    return null;
}
//---------------------------------------------------------------------
// Function to get a cookie.
//---------------------------------------------------------------------
function getCookieVal( offset )
{
    var endstr = document.cookie.indexOf (";", offset);

    if (endstr == -1)
        endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
//---------------------------------------------------------------------
// Function to set a cookie.
//---------------------------------------------------------------------
function SetCookie( name, value )
{
    var argv    = SetCookie.arguments;
    var argc    = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path    = (argc > 3) ? argv[3] : null;
    var domain  = (argc > 4) ? argv[4] : null;
    var secure  = (argc > 5) ? argv[5] : false;

    document.cookie =
        name + "=" + escape (value) +
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
        ((path == null) ? "" : ("; path=" + path)) +
        ((domain == null) ? "" : ("; domain=" + domain)) +
        ((secure == true) ? "; secure" : "");
}
//---------------------------------------------------------------------
// Function to delete a cookie. (Sets expiration date)
//    name - String object containing the cookie name
//---------------------------------------------------------------------
function DeleteCookie (name)
{
    var exp  = new Date();
    var cval = GetCookie (name);

    exp.setTime (exp.getTime() - 1);  // This cookie is history
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

>> From : Vitaly Vasilchuk                    2:5020/400      Wed 12 Apr
>> 00 15:03

<script language="JavaScript">
<!--
// разобрать значение ключа
function extractCookieValue(val)

  if ((endOfCookie = document.cookie.indexOf(";", val)) == -1)

    endOfCookie = document.cookie.length;
  }
  return unescape(document.cookie.substring(val, endOfCookie)) ;
}

// чтение ключа
function ReadCookie(cookiename) {
  var numOfCookies = document.cookie.length;
  var nameOfCookie = cookiename + "=";
  var cookieLen = nameOfCookie.length;
  var x = 0 ;
  while (x <= numOfCookies) {
    var y = (x + cookieLen);
    if (document.cookie.substring(x, y) == nameOfCookie)
      return (extractCookieValue(y));
      x = document.cookie.indexOf(" ", x) + 1;
    if (x == 0)
      break;
  }
  return "";
}

// создание ключа
// для удаления - expiredays = -1
function createCookie(name, value, expiredays)

var todayDate = new Date();
todayDate.setDate(todayDate.getDate() + expiredays);
document.cookie = name +
                  "=" +
                  value +
                  "; expires=" +
    todayDate.toGMTString() +
    ";"
}

// пример загрузки
function LoadCookies() {
  document.forms[0].UserName.value=ReadCookie("UserName");
}

// пример сохранения
function SaveCookies() {
  createCookie("UserName", document.forms[0].UserName.value, 30);
}

//-->
</script>

2. пример скрипта запрещения работы правой кнопки мыши.

>> From : Oleg Arkhipov                       2:5020/400      Mon 06 Dec
>> 99 11:01
>>From: "Oleg Arkhipov" <arol@hippo.ru>

 Нашел в FAQ-Server ( http://zl0ba.cjb.net ) пример скрипта запрещения работы
правой кнопки мыши.

<html>
<head>

<script LANGUAGE="JavaScript1.1">
<!-- Begin
 function right(e) {
  if (navigator.appName == 'Netscape' &&
                             (e.which == 3 || e.which == 2)) {
   alert("Sorry, you do not have permission to right click.");
   return false;
  } else if (navigator.appName == 'Microsoft Internet Explorer' &&
                          (event.button == 2 || event.button == 3)) {
   alert("Sorry, you do not have permission to right click.");
   return false;
  }
  return true;
}

document.onmousedown=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=right;
//  End -->
</script>
</head>
<body>

</body>
</html>


3. Хотелось бы знать как определить и можно ли вообще определить, какая
кнопка нажата у мыши.

>> From : Evgenij Koronin

используй объект event
The Event Object is supported by both Internet Explorer 4.0 and Netscape
(from 3.0). Properties of the event object are available for every event
that occurs on every scriptable object within a document.

event.button
The button property contains an integer value which represents which of the
mouse buttons were used when the event occurred. The possible values are:

Value Button pressed
0 No mouse button pressed
1 Left mouse button pressed
2 Right mouse button pressed
4 Middle button pressed

4.  С этим вопросом я зашел несколько из далека. Конкретно, клиенту необходим
интерфей типа WinApp, то есть popupMenu по правой кнопке мыши. На
WebClub.ru я нашел кое-что, но там пример на VBScript и через скриплет.
Хотелось бы как-нибудь по проще, по пролетарси, и на JavaScript.

>> From : Evgenij Koronin
Простейший пример:

<script>
<!--
function click() {
if (event.button==2) {
alert(Hello')
}
document.onmousedown=click
///-->


теперь смотри,вместо алерта можно вызывать функцию, по коорой будет
показываться слой с линками (графика или еще что - в нем еще можно подсветку
сделать - это уже отдельный вопрос). В слое короче и будет меню, главное
поиметь координаты мыши через тот же объект event и слой отпозиционировать
на эти координаты. - все. Да - под HH надо будет использовать
document.captureEvent(MOUSEDOWN) - посмотри HH доку, а то ИЕ понимает, что у
документа есть onmousedown, а HH  без этого  - нет.
И почитай внимательно про event handlers. - в конце функции, по моему надо
возвратить false - тогда само меню оригинальное не будет выдаваться.

Да совсем забыл - различия ИЕ и HH
for IE
event.button
event.x
event.y

for NN
event.which
event.pageX
event.pageY

5.Не мог бы ты привести пример скриптика, который бы текстом писал online
или offline?

>> From : Evgenij Koronin                     2:5020/400      Mon 27 Mar
>> 00 19:52

Как два пальца - вот, у меня пишет

<html>
<head><title> Online test </title>
</head>

<body>
Internet Explorer in <B>
<script language="javascript1.2">
<!--
if (document.all)
 document.write(navigator.onLine?"online":"offline");
// -->
</script>
</B> mode
</body>
</html>

6. Распечатка страницы из кода
>>From: Nikolay Pichtin

Это попробуйте.

 <SCRIPT>
 function displayPrintButton() {
   if ((navigator.appName.indexOf("Netscape") > -1 &&
      parseInt(navigator.appVersion) >= 4) ||
      (navigator.appName.indexOf("Microsoft") > -1 &&
       parseInt(navigator.appVersion) >= 4) ) {
       document.write
        ("<FORM><INPUT TYPE=button VALUE='Print'
        ("<FORM>onClick='printCurrentPage();'></FORM>");
        }
    }

 function printCurrentPage() {
    if (navigator.appName.indexOf("Microsoft") > -1 &&
        navigator.appVersion.indexOf("5.") == -1) {
       // IE4
       OLECMDID_PRINT = 6;
       OLECMDEXECOPT_DONTPROMPTUSER = 2;
       OLECMDEXECOPT_PROMPTUSER = 1;
       WebBrowser =
        '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0
CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
       document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
       WebBrowser1.ExecWB(OLECMDID_PRINT,   OLECMDEXECOPT_PROMPTUSER);
       WebBrowser1.outerHTML = "";
      }
    else {
      // N4 IE5
      window.print();
      }
    }

    displayPrintButton();
    </SCRIPT>


FAQ III-2. Browser, mouse buttons, cookies, new windows etc.

7.  Как определить - какою у юзера браузер?

>> From : Artem Babadzhanyants

>Как определить - какою у юзера браузер?

// Browser propeties check library. Version 1.02
// (C) Zalog 2000.  Permission granted to reuse and distribute.
// e-mail: zalog@pyramid-studio.com

function Browser(){
  this.checkScreen=Browser_checkScreen;
  this.getCookieVal=Browser_getCookieVal;
  this.fixCookieDate=Browser_fixCookieDate;
  this.getCookie=Browser_getCookie;
  this.setCookie=Browser_setCookie;
  this.deleteCookie=Browser_deleteCookie;
  this.getHostName=Browser_getHostName;
  this.getHostAddress=Browser_getHostAddress;
  this.agent=navigator.userAgent.toLowerCase();
  (navigator.appName)?this.name=navigator.appName:this.name=null;
  (navigator.appCodeName)?this.codeName=navigator.appCodeName:this.codeName=nul
l;
  (navigator.securityPolicy)?this.securityPolicy=navigator.securityPolicy:this.
securityPolicy=null;
  this.versionHi=parseInt(navigator.appVersion);
  this.version=parseFloat(navigator.appVersion);
  if(navigator.cpuClass){
    this.cpu=navigator.cpuClass.toLowerCase();
    this.cpuClass="Unknown CPU class, including Sun SPARC";
    if(navigator.cpuClass.indexOf("x86")!= -1) this.cpuClass="Intel processor";
    if((navigator.cpuClass.indexOf("68k")!=
-1)||(navigator.cpuClass.indexOf("ppc")!= -1)) this.cpuClass="Motorola
processor";
    if(navigator.cpuClass.indexOf("alpha")!= -1) this.cpuClass="Digital
processor";
  }else{
    this.cpu=null;
    this.cpuClass=null;
  }
  (navigator.onLine )?this.onLine=navigator.onLine:this.onLine=null;
  if(navigator.cookieEnabled)this.cookieEnabled=navigator.cookieEnabled;
  else{
    var expdate=new Date();
    expdate.setTime(expdate.getTime()+(365*24*60*60*1000));
    this.fixCookieDate(expdate);
    this.setCookie("test_js","safe to delete",expdate,"/");
    (this.getCookie("test_js"))?this.cookieEnabled=true:this.cookieEnabled=fals
e;
    this.deleteCookie("test_js","/");
  }
  if(navigator.language)this.language=navigator.language;
  else if(navigator.browserLanguage)this.language=navigator.browserLanguage;
    else this.language=null;
  (navigator.systemLanguage)?this.systemLanguage=navigator.systemLanguage:this.
systemLanguage=null;
  (navigator.userLanguage)?this.userLanguage=navigator.userLanguage:this.userLa
nguage=null;
  this.Netscape=((this.agent.indexOf('mozilla')!=-1)&&(this.agent.indexOf('spoo
fer')==-1)&&(this.agent.indexOf('compatible')==-1)&&(this.agent.indexOf('opera'
)==-1)&&(this.agent.indexOf('webtv')==-1));
   this.Netscape2=(this.Netscape&&(this.versionHi==2));
   this.Netscape3=(this.Netscape&&(this.versionHi==3));
   this.Netscape4=(this.Netscape&&(this.versionHi==4));
   this.Netscape4up=(this.Netscape&&(this.versionHi>=4));
   this.Netscape5=(this.Netscape&&(this.versionHi==5));
   this.Netscape5up=(this.Netscape&&(this.versionHi>=5));
   this.NavigatorOnly=(this.Netscape&&((this.agent.indexOf(";nav")!=-1)||(this.
agent.indexOf("; nav")!=-1)));
  this.IE=(this.agent.indexOf("msie") != -1);
   this.IE3=(this.IE&&(this.versionHi<4));
   this.IE4=(this.IE&&(this.versionHi==4)&&(this.agent.indexOf("msie
5.0")==-1));
   this.IE4up=(this.IE&&(this.versionHi>=4));
   this.IE5=(this.IE&&(this.versionHi==4)&&(this.agent.indexOf("msie
5.0")!=-1));
   this.IE5up=(this.IE&&!this.IE3&&!this.IE4);
   if(this.IE5){
     this.versionHi=parseInt(this.agent.substr(this.agent.indexOf("5.")));
     this.version=parseFloat(this.agent.substr(this.agent.indexOf("5.")));
   }
  this.AOL=(this.agent.indexOf("aol")!= -1);
   this.AOL3=(this.AOL&&this.IE3);
   this.AOL4=(this.AOL&&this.IE4);
  this.Opera=(this.agent.indexOf("opera")!=-1);
  this.WebTV=(this.agent.indexOf("webtv")!=-1);
  if(this.Netscape2||this.IE3)this.jsVersion=1.0;
  else if(this.Netscape3||this.Opera)this.jsVersion=1.1;
  else if((this.Netscape4&&(this.version<=4.05))||this.IE4)this.jsVersion=1.2;
  else if((this.Netscape4&&(this.version>4.05))||this.IE5)this.jsVersion=1.3;
  else if(this.Netscape5)this.jsVersion=1.4;
  else if(this.Netscape&&(this.versionHi>5))this.jsVersion=1.4;
  else if(this.IE&&(this.versionHi>5))this.jsVersion=1.3;
  else if(_jsVersion>1.3)this.jsVersion=_jsVersion;
  else this.jsVersion=0.0;
  this.vbVersion=vbVer;
  this.osWin=((this.agent.indexOf("win")!=-1)||(this.agent.indexOf("16bit")!=-1
));
  this.osWin95=((this.agent.indexOf("win95")!=-1)||(this.agent.indexOf("windows
95")!=-1));
  this.osWinCE=((this.agent.indexOf("wince")!=-1)||(this.agent.indexOf("windows
ce")!=-1)||(this.agent.indexOf("win ce")!=-1));
  this.osWin16=((this.agent.indexOf("win16")!=-1)||(this.agent.indexOf("16bit")
!=-1)||(this.agent.indexOf("windows 3.1")!=-1)||(this.agent.indexOf("windows
16-bit")!=-1));
  this.osWin31=((this.agent.indexOf("windows
3.1")!=-1)||(this.agent.indexOf("win16")!=-1)||(this.agent.indexOf("windows
16-bit")!=-1));
  this.osWin98=((this.agent.indexOf("win98")!=-1)||(this.agent.indexOf("windows
98")!=-1));
  this.osWinNT=((this.agent.indexOf("winnt")!=-1)||(this.agent.indexOf("windows
nt")!=-1));
  this.osWin2000=(this.osWinNT||(this.agent.indexOf("nt 5.0")!=-1));
  this.osWin32=(this.osWin95||this.osWinNT||this.osWin98||this.osWin2000||((thi
s.versionHi>=4)&&(navigator.platform=="Win32"))||(this.agent.indexOf("win32")!=
-1)||(this.agent.indexOf("32bit")!=-1));
  this.osOS2=((this.agent.indexOf("os/2")!=-1)||(navigator.appVersion.indexOf("
OS/2")!=-1)||(this.agent.indexOf("ibm-webexplorer")!=-1));
  this.osMac=(this.agent.indexOf("mac")!=-1);
  this.osMac68k=(this.osMac&&((this.agent.indexOf("68k")!=-1)||(this.agent.inde
xOf("68000")!=-1)));
  this.osMacPPC=(this.osMac &&
((this.agent.indexOf("ppc")!=-1)||(this.agent.indexOf("powerpc")!=-1)));
  this.osSun=(this.agent.indexOf("sunos")!=-1);
  this.osSun4=(this.agent.indexOf("sunos 4")!=-1);
  this.osSun5=(this.agent.indexOf("sunos 5")!=-1);
  this.osSuni86=(this.osSun&&(this.agent.indexOf("i86")!=-1));
  this.osIrix=(this.agent.indexOf("irix")!=-1);
  this.osIrix5=(this.agent.indexOf("irix 5")!=-1);
  this.osIrix6=((this.agent.indexOf("irix
6")!=-1)||(this.agent.indexOf("irix6")!=-1));
  this.osHPUx=(this.agent.indexOf("hp-ux")!=-1);
  this.osHPUx9=(this.osHPUx&&(this.agent.indexOf("09.")!=-1));
  this.osHPUx10=(this.osHPUx&&(this.agent.indexOf("10.")!=-1));
  this.osAIX=(this.agent.indexOf("aix")!=-1);
  this.osAIX1=(this.agent.indexOf("aix 1")!=-1);
  this.osAIX2=(this.agent.indexOf("aix 2")!=-1);
  this.osAIX3=(this.agent.indexOf("aix 3")!=-1);
  this.osAIX4=(this.agent.indexOf("aix 4")!=-1);
  this.osLinux=(this.agent.indexOf("inux")!=-1);
  this.osSCO=(this.agent.indexOf("sco")!=-1)||(this.agent.indexOf("unix_sv")!=-
1);
  this.osUnixWare=(this.agent.indexOf("unix_system_v")!=-1);
  this.osMPRAS=(this.agent.indexOf("ncr")!=-1);
  this.osReliant=(this.agent.indexOf("reliantunix")!=-1);
  this.osDEC=((this.agent.indexOf("dec")!=-1)||(this.agent.indexOf("osf1")!=-1)
||(this.agent.indexOf("dec_alpha")!=-1)||(this.agent.indexOf("alphaserver")!=-1
)||(this.agent.indexOf("ultrix")!=-1)||(this.agent.indexOf("alphastation")!=-1)
);
  this.osSinix=(this.agent.indexOf("sinix")!=-1);
  this.osBSD=(this.agent.indexOf("bsd")!=-1);
  this.osFreeBSD=(this.agent.indexOf("freebsd")!=-1);
  this.osOpenBSD=(this.agent.indexOf("openbsd")!=-1);
  this.osNetBSD=(this.agent.indexOf("netbsd")!=-1);
  this.osBSDi=(this.agent.indexOf("bsdi")!=-1);
  this.osUnix=((this.agent.indexOf("x11")!=-1)||this.osSun||this.osIrix||this.o
sHPUx||this.osSCO||this.osUnixWare||this.osMPRAS||this.osReliant||this.osDEC||t
his.osSinix||this.osAIX||this.osLinux||this.osBSD||this.osFreeBSD);
  this.osVMS=((this.agent.indexOf("vax")!=-1)||(this.agent.indexOf("openvms")!=
-1));
  this.hostName=null;
  this.hostAddress=null;
  this.hostName=this.getHostName();
  this.hostAddress=this.getHostAddress();
  this.checkScreen();
}

function Browser_checkScreen(){
  if (top.screen){
    (screen.pixelDepth)?this.pixelDepth=screen.pixelDepth:this.pixelDepth=null;
    (screen.colorDepth)?this.colorDepth=screen.colorDepth:this.colorDepth=null;
    if(screen.width&&screen.height){
      this.screenWidth=screen.width;
      this.screenHeight=screen.height;
       this.screenResolution=this.screenWidth+"x"+this.screenHeight;
    }else{
      this.screenWidth=null;
      this.screenHeight=null;
      this.screenResolution=null;
    }
    if(screen.availWidth&&screen.availHeight){
      this.availWidth=screen.availWidth;
      this.availHeight=screen.availHeight;
      this.availResolution=this.availWidth+"x"+this.availHeight;
    }else{
      this.availWidth=null;
      this.availHeight=null;
      this.availResolution=null;
    }
    if(this.screenWidth&&this.screenHeight&&this.colorDepth)this.Resolution=thi
s.screenWidth+"x"+this.screenHeight+"x"+this.colorDepth;
    else this.Resolution = null;
  }else{
    this.pixelDepth=null;
    this.colorDepth=null;
    this.availWidth=null;
    this.availHeight=null;
    this.availResolution=null;
    this.screenWidth=null;
    this.screenHeight=null;
    this.screenResolution=null;
    this.Resolution=null;
  }
  if(window.innerWidth)this.innerWidth=window.innerWidth;
  else{
    if(document.body){
      if(document.body.clientWidth) this.innerWidth=document.body.clientWidth;
    }else this.innerWidth=null;
  }
  if(window.innerHeight)this.innerHeight=window.innerHeight;
  else{
    if(document.body){
      if(document.body.clientHeight)this.innerHeight=document.body.clientHeight
;
    } else this.innerHeight=null;
  }
  (this.innerWidth&&this.innerHeight)?this.innerResolution=this.innerWidth+"x"+
this.innerHeight:this.innerResolution=null;
  (window.outerWidth)?this.outerWidth=window.outerWidth:this.outerWidth=null;
  (window.outerHeight)?this.outerHeight=window.outerHeight:this.outerHeight=nul
l;
  (this.outerWidth &&
this.outerHeight)?this.outerResolution=this.outerWidth+"x"+this.outerHeight:thi
s.outerResolution=null;
  (window.offscreenBuffering)?this.offscreenBuffering=window.offscreenBuffering
:this.offscreenBuffering=null;
  if(window.frameRate)this.frameRate=window.frameRate;
  else this.frameRate=null;
}
function Browser_getCookieVal(offset){
  var endstr=document.cookie.indexOf(";",offset);
  if(endstr==-1)endstr=document.cookie.length;
  return unescape(document.cookie.substring(offset,endstr));
}
function Browser_fixCookieDate(date){
  var base=new Date(0);
  var skew=base.getTime();
  if(skew>0)date.setTime(date.getTime()-skew);
}
function Browser_getCookie(name){
  var arg=name+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while(i<clen){
    var j=i+alen;
    if(document.cookie.substring(i,j)==arg)return this.getCookieVal(j);
    i=document.cookie.indexOf(" ",i)+1;
    if(i==0)break;
  }
  return null;
}
function Browser_setCookie(name,value,expires,path,domain,secure){
  document.cookie=name+"="+escape(value)+((expires)?";
expires="+expires.toGMTString():"")+((path)?"; path="+path:"")+((domain)?";
domain="+domain:"")+((secure)?"; secure":"");
}
function Browser_deleteCookie(name,path,domain){
  if(this.getCookie(name))document.cookie=name+"="+((path)?";
path="+path:"")+((domain)?"; domain="+domain:"")+"; expires=Thu, 01-Jan-70
00:00:01 GMT";
}
function Browser_getHostName(){
  if(navigator.appName.lastIndexOf('Netscape')!=-1)
    if(navigator.javaEnabled()==1){
      window.onerror=null;
      hostAddress=java.net.InetAddress.getLocalHost();
      return(hostAddress.getHostName());
    }
  return null;
}


FAQ IV. HTML tags, FORMs, FRAMEs

1.Есть фоpма в котоpой два меню выбоpа - пеpвое гpуппа товаpов, втоpое - список
товаpов
Вопpос как сделать что-бы во втоpом меню выходили только товаpы конкpетной
гpуппы товаpов ?

>>From: "Michael A. Kangin" <mak@complife.net>

Приведу состряпаннную програмку. Разберешься?

-+---------------------
<html>

<script>
var tovar = new Array(4)

tovar[1]= new Array(
"Гробы",
"Венки",
"Катафалки",
"Отпевания",
"Памятники",
"Кресты"
)

tovar[2]=new Array(
"Компьютеры большие",
"Компьютеры маленькие",
"Винтчестеры",
"Каркуляторы"
)

tovar[3]=new Array(
"Окна",
"Двери",
"Слова",
"Тараканы",
"Жуки",
"Клопы"
)

tovar[4]=new Array(
"Шампунь",
"Крем",
"Мазь"
)

function update_s2()
{
n=document.f1.s1.selectedIndex + 1;
document.f1.s2.length=tovar[n].length;
for(i=0; i<tovar[n].length; i++) document.f1.s2[i].text = tovar[n][i];
}
</script>

<body>

<form name="f1">

<table border=0 width=100%>
<tr valign=top><td>
Фирма<br>

 <select name="s1" size=4 onChange="update_s2()">
  <option selected>Бензенчук и К

Секция 1 из 2 - Предыдущая - Следующая

Вернуться в раздел "Web-программирование" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь

© faqs.org.ru