пятница, 29 октября 2010 г.

[утилиты онлайн] Экранирование строк для JavaScript

Эта утилита позволяет экранировать любой текст для использования в качестве строки-литерала JavaScript или наоборот: преобразовать строку-литерал JavaScript в обычный текст. Можно экранировать спецсимволы JavaScript или все символы за пределами ASCII, а также экранировать тег <script>, поскольку он недопустим внутри кода JavaScript на странице HTML.

четверг, 28 октября 2010 г.

[Blogger.com] Виджет для Blogger: календарь с возможностью просмотра архива блога.

Итак, свершилось. То, о чём все блогеры на blogspot так долго мечтали, глядя на ЖЖ, доступно прямо здесь и сейчас, достаточно лишь нажать одну кнопку в конце этого поста. Идея виджета принадлежит amateurblogger, а её воплощением в коде занимался ваш покорный слуга. Пока другие перепечатывают друг у друга одни и те же скрипты, гаджеты и уловки, мы таки просто сделаем что-нибудь полезное. Это было лирическое вступление, а теперь к делу.

Виджет «Календарь» показывает в вашем блоге календарь на текущий месяц, в котором по дням проставлены ссылки на ваши посты. Вам и вашим посетителям будет наглядно видно, когда и что вы писали. Календарь можно листать по месяцам и по годам, просматривая весь архив. (Ну или же просто можно воспользоваться им как обычным календарём — посмотреть, на какой день недели какое число приходится. :) )

Ссылка с даты календаря ведёт на соответствующий пост, если вы в этот день написали только одно сообщение, или же на страницу с кратким содержанием постов, если в тот день было больше одного сообщения. (Если вы не пользуетесь разделением на краткое и полное содержание сообщений, то, разумеется, сообщения будут там показаны целиком.) Кстати, при просмотре страниц сообщений и страниц навигации по блогу, календарь будет показывать не текущий месяц, а тот месяц к которому относятся отображаемые на данной странице сообщения.

[утилиты онлайн] RegExp.escape: Экранирование строки при формировании регулярных выражений в javascript (функция и рабочий пример)

Часто возникает необходимость экранировать строку для использования внутри регулярного выражения в Javascript. Рассмотрим, как это сделать.

[утилиты онлайн] Экранирование спецсимволов html в html entities и обратно

Простая утилита, позволяющая заменять специсимволы html на соответствующие entities и обратно. Заменяет символы больше и меньше, амперсанд, кавычки и апострофы, а также символ новой строки (на тег br). Работает без перезагрузки страницы: просто вставьте текст в верхнюю область ввода и переместите курсор в нижнюю.

Экранирование HTML тегов

Возможность показать часть тегов в тексте «как есть» в HTML не предусмотрена, поэтому сиволы <, > и " приходится заменять специальным обозначением:

вторник, 26 октября 2010 г.

[Blogger.com] Скрипт для отображение списка похожих статей

Для блогспота существует множество реализаций виджета похожих постов, начиная от простого списка ссылок и заканчивая навороченными и стильно оформленными виджетами. Для своего блога я перебрал несколько таких скриптов, но ни один из них меня не устроил по тем или иным причинам. Поэтому, взяв за основу код с hoctro.blogspot.com, я написал свой собственный. Собственно, сам скрипт был написал и опубликован еще полгода назад, но изначальная публикация исчезла вместе с удалённым аккаунтом в ЖЖ.

Что же такого может мой скрипт и чего я не нашел в уже готовых виджетах?
Во-первых, это возможность настраивать заголовок скрипта, чтобы он гармонировал с содержимым вашего блога. Согласитесь, если, например, у вас блог посвящен кулинарии и рецептам, то надпись «Еще похожие статьи на тему "Салаты":» будет выглядеть крайне странно. Гораздо лучше написать что-то вроде «Еще рецепты из рубрики "Cалаты":».

Во-вторых, было бы не плохо, если бы компьютер умел различать случаи, когда похожие материалы найдены только по одному ярлыку и когда они найдены по нескольким ярлыкам, и выводить для этих случаев разный текст. Кроме того, я полагаю, обычно, если похожих статей не найдено, то лучше вообще ничего не выводить, но если вам захочется, чтобы в этом случае писалось что-то вроде «Других материалов на эту тему еще не опубликовано», то данный скрипт позволяет сделать и это. Для каждого из этих трёх случаев можно задать в настройках свой вариант текста.

В-третьих, я добавил возможность исключать из поиска отдельные ярлыки. На примере кулинарного блога: если, скажем, вы используете ярлык «нет фото», чтобы отметить рецепты, для которых вы еще не добавили фотографию готового блюда, то скорее всего, вам захочется, чтобы такой ярлык игнорировался при показе посетителям списка похожих рецептов.

И в-четвертых, возможность изменять имена ярлыков и объединять несколько ярлыков в один.

Данный скрипт не оформлен в виде отдельного виджета, а предназначен для встраивания внутрь основного виджета блога — того, который отображает содержимое сообщений. Сделано это, чтобы список похожих материалов располагался непосредственно после содержимого поста, т.е. был сразу виден посетителю при прочтении поста.

понедельник, 11 октября 2010 г.

[Blogger.com] Ссылки постраничной навигации

На Blogger стандартная навигация по страницам архива и отдельным сообщениям оригинальностью не блещет. Две стандартные ссылки «Предыдущие» и «Следующие», да ссылка на главную между ними. Помимо того, что это не оригинально, это, в первую очередь, еще и противо-интуитивно и не удобно: совсем не понятно, почему «Предыдущее» ведет на следующую страницу, а «Следующее» — на уже просмотренную. Здесь временна́я направленность противоречит логической. На мой взгляд, гораздо лучше использовать слова «Раньше» и «Позже».

Текст ссылок Blogger берёт из своих внутренних переменных, но нам способа настроить их не предоставляет. Поэтому находим в шаблоне сегмент nextprev и правим наживую.

Было:
<b:includable id='nextprev'>
  <div class='blog-pager' id='blog-pager'>
    <b:if cond='data:newerPageUrl'>
      <span id='blog-pager-newer-link'>
      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl'
      expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' 
      expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
      </span>
    </b:if>

    <b:if cond='data:olderPageUrl'>
      <span id='blog-pager-older-link'>
      <a class='blog-pager-older-link' expr:href='data:olderPageUrl' 
      expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' 
      expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
      </span>
    </b:if>

    <a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>

  </div>
  <div class='clear'/>
</b:includable>
Стало:
<b:includable id='nextprev'>
  <div class='blog-pager' id='blog-pager'>
    <b:if cond='data:newerPageUrl'>
      <span id='blog-pager-newer-link'>
      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' 
      expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' 
      title='Позже'>← Позже</a>
      </span>
    </b:if>

    <b:if cond='data:olderPageUrl'>
      <span id='blog-pager-older-link'>
      <a class='blog-pager-older-link' expr:href='data:olderPageUrl' 
      expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' 
      title='Раньше'>Раньше →</a>
      </span>
    </b:if>

    <a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>

  </div>
  <div class='clear'/>
</b:includable>

Можно на этом не остановиться и пойти дальше. Например, убрать лишнюю ссылку на главную, предвинуть ближе к друг другу 2 наши ссылки и поместить между ними тире. Итоговый вариант кода:
<b:includable id='nextprev'>
  <div class='blog-pager' id='blog-pager'>
    <b:if cond='data:newerPageUrl'>
      <span id='blog-pager-newer-link'>
      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' 
      expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' 
      title='Позже'>← Позже</a>
      </span>
      <b:if cond='data:olderPageUrl'>
        —
      </b:if>
    </b:if>

    <b:if cond='data:olderPageUrl'>
      <span id='blog-pager-older-link'>
      <a class='blog-pager-older-link' expr:href='data:olderPageUrl' 
      expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' 
      title='Раньше'>Раньше →</a>
      </span>
    </b:if>
  </div>
  <div class='clear'/>
</b:includable>
И соответствующие правки в CSS:
#blog-pager-newer-link {
  float: none;
  margin-left: 0px;
  display: inline;
 }

#blog-pager-older-link {
  float: none;
  display: inline;
 }

#blog-pager {
  text-align: center;
  font-weight:bold;
 }
Что получилось, можно увидеть внизу любой страницы этого блога.

воскресенье, 10 октября 2010 г.

[блогеру на заметку] Установка, чтение и удаление cookie средствами JavaScript

Методы для работы с cookie из JavaScript:
function setCookie(name, value, expires, path, domain, secure) {
    if (!name || !value) return false;
    var str = name + '=' + encodeURIComponent(value);
    
    if (expires) str += '; expires=' + expires.toGMTString();
    if (path)    str += '; path=' + path;
    if (domain)  str += '; domain=' + domain;
    if (secure)  str += '; secure';
    
    document.cookie = str;
    return true;
}

function getCookie(name) {
    var pattern = "(?:; )?" + name + "=([^;]*);?";
    var regexp  = new RegExp(pattern);
    
    if (regexp.test(document.cookie))
    return decodeURIComponent(RegExp["$1"]);
    
    return false;
}

function deleteCookie(name, path, domain) {
    setCookie(name, null, new Date(0), path, domain);
    return true;
}
Пример использования. Сериализация одномерного массива в cookie:
// Получаем текущее время и дату.
var d = new Date();
// Увеличиваем дату на 6 месяцев.
d.setMonth(d.getMonth() + 6);
// Сохраняем массив current_color в cookie current_color на 6 месяцев.
setCookie('current_color', current_color.join(','), d);
Чтение cookie и десериализация массива:
var color = getCookie('current_color');
if (color) {
    eval('current_color = [' + color + ']');
}

Сервис экранирования спецсимволов онлайн

Часто возникает необходимость экранирования управляющих символов в больших фрагментах текста для различных языков программирования и языков разметки. Вручную этот процесс может быть достаточно трудоёмким. На нашем сайте вы можете воспользоваться следующими сервисами для решения этой задачи:

Экранирование спецсимволов HTML и XML

Экранирование символов в строках Javascript

Экранирование символов в регулярных выражениях Javascript

суббота, 9 октября 2010 г.

[блогеру на заметку] CSS-свойство box-shadow + Firefox = эпичные тормоза и лаги

Сегодня обнаружил сайт, на котором Firefox тормозит и лагает вплоть до того, что почти невозможно прокручивать страницу. При этом на соседних вкладках другие сайты ведут себя вполне нормально. (Обычно если Firefox тормозит, то весь целиком.)

Стало любопытно разобраться, в чём проблема. Скрипты в качестве подозреваемого сразу отпадают, поскольку у них алиби NoScript. Сохранил страницу на диск и стал мучить её исходный код. После непродолжительного сеанса научного тыка, основной источник лагов обнаружился в виде CSS-свойства box-shadow. Ну а после исключения еще и свойства border-radius, всё стало совсем шоколадно.
В самом деле, вот обсуждение проблемы на форуме проекта, а вот и соответствующий багрепорт, который висит в багзилле в состоянии UNCONFIRMED с 2008-го года. Да. И, как пишут там в комментариях, в бете 4-й версии баг по-прежнему присутствует. Ведь все силы разработчиков ушли на то, чтобы сплагиатить из Opera большую красную кнопку.

Сайт тот, кстати, слегка подтормаживает и в других браузерах — еще бы, сохранённая копия страницы вместе со всеми скриптами и картинками весит 1.7 мегабайт. (Не знаю, зачем нужно столько скриптов, но, как говорится, хозяин — барин.) Но даже целому взводу JavaScript-кодеров, которые писали все эти скрипты, не под силу так угробить производительность современного компьютера, как это могут сделать разработчики мозиловского движка рендеринга страниц. И победоносное пришествие CSS3 с настоящими тенями и истинными-скруглёнными-углами опять откладывается на неопределённый срок.

Так что, товарищи блогеры, будьте бдительны, проверяйте свои дизайны на совместимость с популярными браузерами и если что, сносите все эти красивости нахрен. Удобство посетителя важнее красивых теней.

понедельник, 4 октября 2010 г.

[советы по настройке] Настройка минимальной ширины табов в Firefox

Как известно, по мере открытия новых вкладок, в Opera размер табов уменьшается практически неограниченно, а в Firefox вместо этого появляются кнопки для прокрутки списка табов. Прокрутка, на мой взгляд, не очень удобна, но всё руки не доходили погуглить и настроить.
Сегодня узнал о существовании параметра, позволяющего задать для Firefox минимальную ширину таба.
Идём в about:config, находим там параметр browser.tabs.tabMinWidth и выставляем нужное значение. По умолчанию стоит 100, я поставил 30. В результате в окне браузера на экране шириной 1280 пикселей помещается 39 вкладок без прокрутки. Более, чем достаточно.

Также у меня стоит аддон Informational Tab, в котором можно настроить показ кнопок закрытия вкладок, которые при малой ширине табов только мешают.

воскресенье, 3 октября 2010 г.

[советы по настройке] Как вдохнуть новую жизнь в Windows XP

Легким движением руки «морально устаревшая» операционная система почти десятилетнего возраста становится современной, удобной и красивой. Всего-то надо поставить в неё эти замечательные утилиты.

Folder Size
Добавляет в Проводник колонки с полным размером каталогов, и количеством файлов и подкаталогов.

Fences
Группировка иконок на рабочем столе в контейнеры.

TaskSwitchXP
Замена стандартного механизма переключения окон. Может отображать миниатюры окон в списке Alt-Tab. Среди дополнительных функций присутствует возможность сворачивать окна в трей щелчком правой кнопки мыши на кнопке "Свернуть" в заголовке окна.

Taskbar Shuffle
Позволяет упорядочивать кнопки на панели задач и иконки в лотке. Также имеется возможность использовать альтернативный метод группирования кнопок: кнопки окон одного приложения всегда располагаются на панели рядом, но при этом не объединяются в один выпадающий список.

Start Killer
Скрывает кнопку Пуск.

LClock
Замена стандартным часам в трее плюс удобный календарь.

iColorFolder
Программа позволяет из контекстного меню назначать цветовые метки папкам.

QTAddressBar
Аналог адресной строки Проводника Висты специально для XP.

QTTabBar
Программа добавляет в проводник возможность работы со вкладками, историю навигации, список избранных каталогов и другие удобства.

Colours
Программа позволяет рассмотреть под увеличением любой фрагмент экрана и взять образец цвета с нужного пикселя. Есть возможность сохранять цвета в палитрах. Значение цвета можно скопировать в форматах множества программ, начиная от Фотошопа и заканчивая Делфи.
Программа больше не обновляется, но по ссылке можно скачать последний релиз.

Flypapers
Элегантные «липкие» заметки для рабочего стола. Разработчик тот же, что и у Colours.

GreenShot
Программа для снятие скриншотов. Может снимать скриншот всего экрана, отдельного окна или указанной при помощи мыши области. Автоматически сохраняет файлы в заданный каталог и присваивает им названия с соответствующей датой и временем.

RandomScreensaver
Запуск случайной заставки из выбранного списка.
И пара замечательных скринсейверов: Actual Earth и Actual Moon.

CopyFilenames
Программа добавляет в контекстное меню пункты для копирования имени файла, а также быстрой замены одного файла другим "в два клика".

[утилиты онлайн] Цветовой калькулятор HSL и RGB

Ниже представлен скрипт, реализующий удобную палитру для выбора и запоминания цвета прямо в браузере. Для работы необходимы JavaScript и cookie.

Возможности калькулятора:

  • Получение цвета в RGB и HLS и преобразование цвета между этими цветовыми пространствами.
  • Получение значения цвета в различных форматах: 2 варианта, используемых в HTML и CSS, проценты, десятичное значение, шестнадцатиричные значения для языков Си, Pascal/Delphi и Visual Basic.
  • Запоминание выбранного цвета между запусками цветового калькулятора (сохраняется в cookie браузера).
  • Хранение палитры из 32-х цветов (сохраняется в cookie браузера).

[блогеру на заметку] Динамическое назначение обработчика onclick в Firefox

Чтобы динамически назначить обработчик на onclick (и на остальные эвенты), интуитивно хочется сделать так:
node.onclick = "blabla()";
(И в Opera это даже работает.)

А правильно — вот так:
node.setAttribute("onclick", "blabla()");
Иначе Firefox молчит и ничего не делает.

Наткнулся сегодня на эти грабли. Давно ничего, выходящего за рамки скрипта из пары строк, на JavaScript не писал и позабывал уж всё.

пятница, 1 октября 2010 г.

[советы по настройке] Опции командной строки для Firefox и других продуктов Mozilla

Оглавление
    1. 1. Как использовать опции командной строки
      1. 1.1. Windows
      2. 1.2. Mac OS X
      3. 1.3. Linux
    2. 2. Профиль пользователя
      1. 2.1. -CreateProfile profile_name
      2. 2.2. -CreateProfile "profile_name profile_dir"
      3. 2.3. -ProfileManager или -P
      4. 2.4. -SelectProfile
      5. 2.5. -ProfileWizard
      6. 2.6. -P "profile_name"
      7. 2.7. -profile "/path/to/profile"
      8. 2.8. -no-remote
      9. 2.9. -migration
      10. 2.10. -installer
      11. 2.11. -resetPref preference
      12. 2.12. -override /path/to/override.ini
    3. 3. Браузер
      1. 3.1. -browser
      2. 3.2. -url URL
      3. 3.3. -private
      4. 3.4. -new-tab URL
      5. 3.5. -new-window URL
      6. 3.6. -search term
      7. 3.7. -preferences
      8. 3.8. -setDefaultBrowser
    4. 4. Mail/News
      1. 4.1. -mail
      2. 4.2. -mail mailto_URL
      3. 4.3. -news news_URL
      4. 4.4. -compose message_options
      5. 4.5. -addressbook
      6. 4.6. -options
      7. 4.7. -offline
      8. 4.8. -setDefaultMail
    5. 5. Календарь
      1. 5.1. -calendar
      2. 5.2. -subscribe URL или -url URL
      3. 5.3. -showdate date
    6. 6. Другие компоненты
      1. 6.1. -editor URL или -edit URL
      2. 6.2. -jsconsole
      3. 6.3. -inspector URL
      4. 6.4. -venkman
      5. 6.5. -chat
    7. 7. XULRunner
      1. 7.1. -app /path/to/application.ini
    8. 8. Chrome
      1. 8.1. -chrome chrome_URL
      2. 8.2. -register chrome_URL
    9. 9. Аддоны
      1. 9.1. -install-global-extension /path/to/extension
      2. 9.2. -install-global-theme /path/to/theme
      3. 9.3. -safe-mode
    10. 10. Локаль
      1. 10.1. -UILocale locale
    11. 11. Startup
      1. 11.1. -turbo
      2. 11.2. -nosplash or -quiet
    12. 12. Удалённое управление
      1. 12.1. -remote remote_command
    13. 13. Разное
      1. 13.1. -silent
      2. 13.2. -console
      3. 13.3. -h или -help или -?
      4. 13.4. -v или -version
      5. 13.5. -osint
      6. 13.6. -requestPending
    14. 14. Недокументированные опции
    15. 15. Правила синтаксиса


Опции командной строки для продуктов Mozilla

Как использовать опции командной строки

Следующий пример показывает использование опции командной строки для открытия менеджера профилей в Firefox:

Windows

Выберите Выполнить в меню Пуск. Введите:

firefox -P

Mac OS X

Откройте окно терминала через  Applications > Utilities и введите:

/Applications/Firefox.app/Contents/MacOS
./firefox-bin -P

Linux

Откройте терминал и введите:

cd Firefox installation directory
./firefox -P

Профиль пользователя

-CreateProfile profile_name

Создать новый профиль с именем profile_name, но не запускать приложение. profile_name не должно содержать пробелов.

firefox -CreateProfile JoelUser

-CreateProfile "profile_name profile_dir"

Создать новый профиль с именем profile_name в каталоге profile_dir directory, но не запускать приложение. Обратите мнимание, что profile_name и profile_dir вместе взяты в кавычки. (Не в SeaMonkey1.x)

Примечание: каталог profile_dir обязан отсутствовать, и профиля с указанным именем так же не должно быть.

firefox -CreateProfile "JoelUser c:\internet\moz-profile"

-ProfileManager или -P

Запустить менеджер профилей. В Linux нужно использовать заглавную P, т.к. строчная запускает режим Purify (обнаружение утечек памяти). На других платформах возможно использование любого регистра.

-SelectProfile

Запустить диалог выбора профиля. Только для SeaMonkey1.x

-ProfileWizard

Запустить Profile Wizard. Только для SeaMonkey1.x.

-P "profile_name"

Запустить приложение с указанным профилем.

firefox -P "JoelUser"

-profile "/path/to/profile"

Запустить с профилем из указанного каталога. Только для Firefox, Thunderbird и SeaMonkey2.x.

-no-remote

Разрешить запуск нескольких копий приложения. (Не в SeaMonkey1.x, который поддерживает только MOZ_NO_REMOTE=1).

firefox -no-remote -P "Another Profile"

-migration

Запустить мастер импорта. (Не в SeaMonkey1.x)

-installer

Запустить мастер миграции с Netscape 4.x. Только для SeaMonkey1.x.

-resetPref preference

Сбросить указанную настройку в значение по умолчанию (список настроек указывается через запятую). Только для SeaMonkey1.x.

seamonkey -resetPref browser.startup.homepage

-override /path/to/override.ini

Заргурить указанный файл override.ini, который перекроет параметры файла application.ini ( browser/app/application.ini). Может быть полезно, чтобы подавить запуск мастера миграции при помощи следующего override.ini. Только для Firefox.

[XRE]
EnableProfileMigrator=0

Браузер

-browser

Start with the browser component. Firefox and SeaMonkey only.

-url URL

Открыть указанный URL в новой вкладке или окне, в зависимости от настроек браузера. -url может быть опущено. Только для Firefox и SeaMonkey. Примечание: При открытии нескольких URL, Firefox всегда открывает их на вкладках нового окна.

firefox www.mozilla.com

-private

Запустить Firefox в приватном режиме, вне зависимости от текущих настроек. Только для Firefox 3.6 и выше.

-new-tab URL

Открыть URL в новой вкладке. Только для Firefox и SeaMonkey2.x.

-new-window URL

Открыть URL в новом окне. Только для Firefox и SeaMonkey2.x.

-search term

Поиск term в поисковой системе по умолчанию. Только для Firefox и SeaMonkey2.x.

-preferences

Открыть окно настроек. Только для Firefox.

-setDefaultBrowser

Установить приложение браузером по умолчанию. Только для Firefox.

Mail/News

-mail

Открыть почтовый клиент. Только для Thunderbird и SeaMonkey.

-mail mailto_URL

Открыть почтовый клиент и создать сообщение с заданным адресом получателя.  Только для Thunderbird.

thunderbird -mail mailto:me@isp.net?subject=hi

-news news_URL

Открыть клиент новостей. Если указан news_URL (опциональный), открыть данную группу новостей. Только для Thunderbird и SeaMonkey.

thunderbird -news news://server/group

-compose message_options

Открыть почтовый клиент. См. правила синтаксиса. Только для Thunderbird и SeaMonkey.

thunderbird -compose "to=foo@nowhere.net"

-addressbook

Открыть адресную книгу. Только для Thunderbird и SeaMonkey.

-options

Открыть окно настроек. Только для Thunderbird.

-offline

Запуск в автономном режиме. Только для Thunderbird и SeaMonkey.

-setDefaultMail

Установить приложение почтовым клиентом по умолчанию. Только для Thunderbird.

Календарь

-calendar

Открыть календарь. Только для Sunbird.

-subscribe URL или -url URL

Подписаться на указанный URL. Только для Sunbird.

-showdate date

Открыть планировщик на указанной дате. Только для Sunbird.

sunbird -showdate 08/04/2008

Другие компоненты

-editor URL или -edit URL

Открыть редактор для указанного URL (URL опционально). Только для SeaMonkey.

seamonkey -edit www.mozilla.org

-jsconsole

Запустить приложение с консолью ошибок.

-inspector URL

Открыть инспектор DOM, если он установлен.(URL опционально)

-venkman

Запуск отладчика JavaScript Venkman, если он установлен.

-chat

Открыть клиент IRC ChatZilla, если он установлен.

XULRunner

-app /path/to/application.ini

Запустить новый процесс, открыв указанное XULRunner приложение. Только для Firefox версии 3 и выше.

Chrome

-chrome chrome_URL

Загрузить указанный chrome.

firefox -chrome chrome://inspector/content

-register chrome_URL

Зарегистрировать указанный chrome, но не запускать приложение.

Аддоны

Примечание для Gecko 1.9.2

Опции -install-global-extension и -install-global-themeбыли удалены в версии Gecko 1.9.2 и выше.

-install-global-extension /path/to/extension

Установить указанное расширение в каталог приложения. Необходимы права администратора. (Не в SeaMonkey1.x).

-install-global-theme /path/to/theme

Аналогично для тем. Необходимы права администратора. (Не в SeaMonkey1.x).

Начиная с Firefox 2.0.0.7, использование аргументов -install-global-extension и -install-global-theme ограничено только установкой с локальных и смонтированных по сети дисков. Установка напрямую с network share не поддерживается. [1]

-safe-mode

Запуск приложения без всех расширений. (Не в SeaMonkey1.x)

Локаль

-UILocale locale

Запуск с указанной локалью.

firefox -UILocale en-US

Startup

-turbo

Запуск приложения в режиме Quick Launch. Только для SeaMonkey1.x.

-nosplash or -quiet

Подавить отображение окна-заставки при запуске. Чтобы отобразить заставку, используйте комнаду -splash. Примечание: на некоторых системах заставка отключена по умолчанию. Только для SeaMonkey1.x.

Удалённое управление

-remote remote_command

Выполнить команду remote_command в уже запущенной копии приложения (см. remote control). Примечание: Для SeaMonkey1.x только в системах Unix/Linux.

firefox -remote "openURL(www.mozilla.org, new-tab)"

Разное

-silent

Не открывать окна по умолчанию. Только для Firefox, Thunderbird3.x и SeaMonkey2.x.

-console

Открыть отладочную консоль. Только в Windows.

-h or -help or -?

Вывести список доступных опций командной строки. Обратите внимание, в Windows это работает только в отладочных сборках ( bug 355889 ).

-v or -version

Вывести версию приложения. Обратите внимание, в Windows это работает только в отладочных сборках ( bug 355889 ).

-osint

Tells the application that it is being launched by the OS shell. This should not be specified unless the caller provides all of the functionality provided by the OS shell when launching the application ( bug 384384 ).

-requestPending

Tells the application that there will be a Windows DDE request to open the same url specified on the command line. This should not be specified unless the caller provides all of the functionality provided by the OS shell when launching the application ( bug 354005 ).

Недокументированные опции

  • -print-xpcom-dir
  • -print-xpcom-dirlist
  • -kill
  • -killAll
  • -f
  • -ftimeout
  • -fwait
  • -unsetDefaultMail
  • -foreground
  • GTK options
  • X11 options

Правила синтаксиса

  • Параметры, содержащие пробелы, должны быть заключены в кавычки. Например: "Joel User".
  • Названия опций не зависят от регистра символов.
  • Параметры, за исключением имён профилей не зависят от регистра символов.
  • Пробелы разделяют команды и параметры.
  • Каждая опция сообщения имеет синтаксис поле=значение, например:
    • to=foo@nowhere.net
    • subject=cool page
    • attachment=www.mozilla.org
    • attachment='file:///c:/test.txt'
    • body=check this page
  • Опции сообщения разделяются запятыми, например: "to=foo@nowhere.net,subject=cool page" . Перед или после запятой не должно быть пробелов. Чтобы присвоить несколько значений полю, заключите его в одинарные кавычки, например: "to='foo@nowhere.net,foo@foo.de',subject=cool page" .

Перевод материала с сайта developer.mozilla.org.

[блогеру на заметку] Реализация getElementsByClassName для IE8

Добавил в шаблон блога реализацию метода getElementsByClassName для Internet Explorer, теперь в IE8 нормально отрабатывает скрипт замены дат. В других браузерах, не имеющих поддержки этого метода, код тестировать лень, так как их долей по сравнению с Firefox 3 и IE8 можно спокойно пренебречь.

В отличие от большинства реализаций getElementsByClassName, что попадаются в интернетах, данная встраивается непосредственно в прототипы объектов DOM-дерева и может вызываться как метод любого узла, а не как внешняя функция. Т.е. весь остальной код не придётся переделывать ради совместимости с IE.

<script type='text/javascript'>
    if( typeof document.getElementsByClassName != 'function' ) {
        HTMLDocument.prototype.getElementsByClassName = Element.prototype.getElementsByClassName = function (className) {
            if( !className )
                return [];
            var elements = this.getElementsByTagName('*');
            var list = [];
            var expr = new RegExp( '(^|\\b)' + className + '(\\b|$)' );
            for (var i = 0, length = elements.length; i &lt; length; i++)
                if (expr.test(elements[i].className))
                    list.push(elements[i]);
            return list;
        };
    }
</script>