CB's blog

Архив рубрики 'JavaScript'

Кодирование UTF символов в JavaScript

Понедельник, Июнь 9th, 2008

JavaScript хорош тем, что нормально работает с UTF, некоторые средства поддерживают юникод хуже. Эту функцию я написал чтобы работая с HTML кодировать потенциально проблемные символы (с кодом больше 127) в числовом формате вида: &#<десятичный код символа>;. (Для шестнадцатеричного представления: &#x<16-ричный код символа>;).

Функция для десятичного случая (аргумент — строка):

function encodeUtf(s) {
   var buffer = [];
   for(var i=0, l = s.length; i <= l-1; i++) {
      var code = s.charCodeAt(i);
      if(code > 127) {
         buffer.push("&#" + code + ";");
      }
      else {
         buffer.push(s[i]);
      }
   }
   return buffer.join("");
}

Например, ‘ô’ закодируется как &#244;, а ‘R’ так и останется ‘R’.

Демо.

Избавляемся от ошибки urchinTracker is not defined

Вторник, Август 7th, 2007

Часто при использовании Google Analytics появляется ошибка JavaScript: urchinTracker is not defined (ее можно увидеть при установленном Firebug).

Для того, чтобы это безобразие исчезло, достаточно заменить в коде, который вставляется на страницу при использовании Google Analytics

urchinTracker();

на

if (typeof(urchinTracker) == 'function') urchinTracker();

Источник.

CSS для Opera

Воскресенье, Июнь 24th, 2007

Один раз получилось так, что в во всех браузерах, кроме Opera 9, страница выглядела одинаково. Не самое удачное и красивое, но быстрое (по трудоемкости) и рабочее решение я сделал с помощью куска JavaScript (предполагается, что глючит елемент с id elem-id, CSS-класс opera лечит глюки):

if(window.opera) {
   addLoadEvent(fixOpera);
}

function fixOpera() {
   var elem = document.getElementById("elem-id");

   if(elem) {
      elem.className += " opera";
   }
}

Ссылка по теме: quirksmode.org - Browser detect.

Рисование простых ломаных линий div’ами на JavaScript

Суббота, Май 19th, 2007

На этот раз я опишу как при помощи div’ов и JavaScript можно рисовать несложные ломаные линии — только из горизонтальных и вертикальных сегментов. Для особо нетерпеливых читателей сразу ссылка на демку. Для тех, кто хочет рисовать дивами что-то сложное, ссылка на неплохую библиотеку от Walter Zorn wz_jsgraphics.js. А теперь по порядку.

(more…)

DOMAss (DOMAssistant) — легкая JavaScript библиотека

Воскресенье, Февраль 25th, 2007

DOMAss (upd.: теперь новое имя (DOMAssistant)) — сокращение от DOM Assistant. Официальный сайт: http://www.robertnyman.com/domass/. Отличительной особенностью данной библиотеки является минимализм — она не содержит ни визуальных эффектов, ни аякса, ни всяческих абстрактных расширений JavaScript. DOMAss — это пять, пять модулей, в которых содержится около двух десятков функций-помощников при работе с DOM. Размер — от 2,95 Кб до 11,2 Кб в зависимости от того, какие модули подключены. Это выгодно отличает DOMAss от, например, Prototype (69,5 Кб).

(more…)