JavaScript: Список топиков:

JSFAQIII-1:
    Тема : FAQ - III-1. Browser, mouse buttons, cookies, new windows etc.
    -----------------------------------------------------------

    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>

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

    <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. С этим вопросом я зашел несколько из далека. Конкретно, клиенту необходим интерфейc типа WinApp, то есть popupMenu по правой кнопке мыши. Hа 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.Hе мог бы ты привести пример скриптика, который бы текстом писал 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>

Сайт управляется системой uCoz