browser – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Thu, 19 Feb 2015 16:08:47 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 Шорткаты адресной строки браузера https://stepansuvorov.com/blog/2014/06/browser-search-shortcuts/ https://stepansuvorov.com/blog/2014/06/browser-search-shortcuts/#respond Sun, 29 Jun 2014 20:04:26 +0000 http://stepansuvorov.com/blog/?p=1773 Continue reading ]]> На хабре уже мелькала статья в тему. Суть в том, что мы делаем поисковый запрос, используя поисковый механизм конкретного сайта, до перехода на сам сайт в адресной строке браузера.

Проще будет на примере. Мы хотим запустить поиск по хабру. Переходим в строку браузера и пишем “h” и далее пробел, и о чудо:

мы видим что мы уже ищем по хабру.

Как сделать это чудо? Оказывается в chrome-браузере(как и в Firefox) уже есть встроенная возможность создавать такие алиасы.

Для того, чтобы создать такой шорткат в chrome, открываем chrome://settings/searchEngines, затем добавляем новый поисковый движок habr, ключевое слово – h, ссылка с параметром –  http://habrahabr.ru/search/?q=%s. Вот и все.

Пробуем(в адресной строке браузера):

  • h [пробел] angular
  • h [пробел] рекурсия

Полезный набор шорткатов:

  • wiki – Wikipedia – http://en.wikipedia.org/wiki/Special:Search?search=%s
  • tr – google translate – http://translate.google.com/?source=osdd#auto|auto|%s
  • h – habrahabr – http://habrahabr.ru/search/?q=%s
  • jq -jQuery – http://jquery.com/%s
  • calendar – google calendar – https://www.google.com/calendar
  • s – Stackoverflow – http://stackoverflow.com/search?q=%s
  • вики – Википедия – http://ru.wikipedia.org/wiki/Special:Search?search=%s
  • bug – любимый баг трекер ( например для поиска по ID )
]]>
https://stepansuvorov.com/blog/2014/06/browser-search-shortcuts/feed/ 0
Octane – Browser (javascript engine) benchmark https://stepansuvorov.com/blog/2014/02/octane-browser-javascript-engine-benchmark/ https://stepansuvorov.com/blog/2014/02/octane-browser-javascript-engine-benchmark/#respond Sat, 08 Feb 2014 20:53:14 +0000 http://stepansuvorov.com/blog/?p=1415 test your browser javascript engine with Octane 2.0 from Google.

]]>
https://stepansuvorov.com/blog/2014/02/octane-browser-javascript-engine-benchmark/feed/ 0
Browser to Notepad in one click https://stepansuvorov.com/blog/2013/12/notepad/ https://stepansuvorov.com/blog/2013/12/notepad/#comments Sat, 07 Dec 2013 18:45:42 +0000 http://stepansuvorov.com/blog/?p=1310 Just do click.

You can save this link to your bookmarks and/or customise it by own taste. Code and comments you can find here.

 

 

]]>
https://stepansuvorov.com/blog/2013/12/notepad/feed/ 1
Userscript console++ https://stepansuvorov.com/blog/2013/10/console-plus-plus/ https://stepansuvorov.com/blog/2013/10/console-plus-plus/#respond Tue, 29 Oct 2013 08:33:50 +0000 http://stepansuvorov.com/blog/?p=1249 Continue reading ]]> I’ve created userscript to extend browser console.

Basic options:

  • own console object with all methods to prevent errors in old browsers
  • using console without context (we can pass console.log as a callback, and no “Illegal invocation” error will be shown)
  • production param (debug information only for dev environment )
  • time and timeEnd methods (if they are not exist)
  • log alias for console.log

Download/install console++.

sources of inspiration:

]]>
https://stepansuvorov.com/blog/2013/10/console-plus-plus/feed/ 0
Возможности консоли браузера https://stepansuvorov.com/blog/2013/04/%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0/ https://stepansuvorov.com/blog/2013/04/%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0/#respond Mon, 01 Apr 2013 18:17:42 +0000 http://stepansuvorov.com/blog/?p=928 Continue reading ]]> Речь пойдет о начинке встроенного объекта console в браузерах Chrome и Firefox.

Начнем с простого – метод console.log(). Базовый синтаксис:

console.log(obj1 [, obj2, ..., objN);
console.log(msg [, subst1, ..., substN);

Если с первым вариантом использования все понятно, то со вторым следует разобраться: в данном случае мы можем использовать шаблон первым параметром, в который будут подставлены переменные, пример:

console.log("%s is %d years old.", "Bob", 42)

и выведет оно, как вы уже догадались: Bob is 42 years old.

Для подстановки можно использовать следующие подшаблоны:

  • %o – для ссылки на объект
  • %d, %i – целые чила (integer)
  • %s – строки
  • %f – числа с плавающей запятой (float)

Далее перейдем к схожим методам, а именно console.info(), console.warn(), console.error(), console.debug(). Все они работают аналогично console.log(), а метод console.debug() вообще является его алисом(deprecated). Отличие по сути только в варианте вывода(примеры для FireFox и Chrome):

 

Иногда, когда объект вложеный удобнее использовать не console.log(), а console.dir(), который выведет все в виде структуры:

console.log(location)
console.dir(location)

чтобы вывести красиво HTML/XML можно использовать console.dirxml():

console.dirxml(document.body)

правда, если говорить о Chrome, то там объединили понятие dir/dirxml и log и для сложных обектов со вложенными свойствами используют dir/dirxml вместо log по умолчанию.

Если в консоль выводится много информации, то будет полезно разделять информацию по группам исползуя метод console.group() плюс вспомогательные console.groupEnd() и console.groupCollapsed():

console.clear()
console.group("module A")
console.log('a')
console.log('a')
console.log('a')
console.group("nested module B")
console.log('b')
console.log('b')
console.log('b')
console.groupEnd()
console.groupCollapsed("nested collapsed module C")
console.log('c')
console.log('c')
console.log('c')
console.groupEnd()
console.groupEnd()
console.group("module D")
console.log('d')
console.log('d')
console.log('d')
console.groupEnd()

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

Для оценки времени выполнения чего-либо существует удобный метод console.time() и console.timeEnd(), синтаксис:

console.time(timerName);
console.timeEnd(timerName);

Пример:

console.time("timer1")
console.time("timer2")
var i = 10000, j = 0;
while(i--){ j++}
console.timeEnd("timer1")
while(j--){}
console.timeEnd("timer2")

Есть также в консоли и метод для трассировки вызова – console.trace(). Наиболее полезное примененеие ему – вывод полного стека вызовов при возникновении ошибки – что делает браузер по умолчанию, но всеже, если мы переопределили стандартное поведение браузера, нам очень поможет этот метод:

(function foo() {
  function bar() { console.trace(); };
  bar();
})()

К сожалению, в FireBug это не работает, а Chrome выдал следующее:

Через консоль еще можно проверять ожидаемые значения используя метод console.assert(), который в случае невыполнения условия внутри вернет console.error().

Для работы с DOM есть ряд полезных хелперов:

  • $(), $$() – краткая запись для document.querySelector
  • $x() – получение элемента по XPath
  • $0 – выбранный инспектором элемент
  • $1 – предыдущий выбранный инспектором элемент
  • $n() – показать один из пяти последних выбранных элементов (параметром идет номер элемента) – работает только для FireBug

Другие полезные хелперы:

  • keys() – выводит ключи объекта
  • values() – выводи значения объекта
  • inspect() – открывает объект для инспектирования
  • clear() – очищает консоль

Ну и конечно самый главный метод help(), плохо что его так и не реализовали в Chrome, но в FireBug он работает отлично, рекомендую.

 

Ну и еще как бонус, для тех, кто долистал этот посто до конца. В FireBug есть интересный синтаксис работы с переменными из замыкания используя “%“:

function Person(name)
{
    this.introduce = function()
    {
        return 'Hello, my name is ' + name;
    }
}

var someone = new Person("Arthur");
someone.%name; // выведет "Arthur"

 

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

]]>
https://stepansuvorov.com/blog/2013/04/%d0%b2%d0%be%d0%b7%d0%bc%d0%be%d0%b6%d0%bd%d0%be%d1%81%d1%82%d0%b8-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0/feed/ 0
Тестируем сайт на разных версиях ИЕ под Linux/Mac https://stepansuvorov.com/blog/2013/03/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d1%83%d0%b5%d0%bc-%d1%81%d0%b0%d0%b9%d1%82-%d0%bd%d0%b0-%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d1%85-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d1%8f%d1%85-%d0%b8%d0%b5-%d0%bf%d0%be/ https://stepansuvorov.com/blog/2013/03/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d1%83%d0%b5%d0%bc-%d1%81%d0%b0%d0%b9%d1%82-%d0%bd%d0%b0-%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d1%85-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d1%8f%d1%85-%d0%b8%d0%b5-%d0%bf%d0%be/#comments Sun, 31 Mar 2013 12:25:38 +0000 http://stepansuvorov.com/blog/?p=930 Continue reading ]]> Хочу поделиться скриптом найденым в сети, который создает виртуальные машины(на основе VirtualBox) для всех версий Internet Explorer на раздых Windows, при этом не нарушая лицензии. Подробности под катом.

Компания Microsoft сама создала образы вируальных машин с целью предоставляения возможности вебразработчикам тестировать их сайты на старых версиях IE и/или из другой операционной ситемы(Linux/Mac). Для удобного использования Greg Thornton создал скрипт, который сам все скачивает и устанавливает.

Плюсы: это бесплатно, легально и это не требует лиценизии на каждую Window.

Минусы: если вы захотите поставить себе все версии(это опционально), то займет довольно много места на диске (около 45Гб)

Внимание! Windows обязательно попросит себя активировать. Это нормально. Чтобы снова получить trial необходимо выполнить c правами администратора следующую команду в командной строке(cmd):

slmgr -rearm

Пароль по умолчанию для всех версий Windows – “Password1“.

Запустить скрипт одной сточкой можно так:

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | bash

через параметр IEVMS_VERSIONS можно указать конкретные версии, которые необходимо установить

curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="6 8" bash

Спасибо Грегу за скрипт и вам успешного тестирования.

]]>
https://stepansuvorov.com/blog/2013/03/%d1%82%d0%b5%d1%81%d1%82%d0%b8%d1%80%d1%83%d0%b5%d0%bc-%d1%81%d0%b0%d0%b9%d1%82-%d0%bd%d0%b0-%d1%80%d0%b0%d0%b7%d0%bd%d1%8b%d1%85-%d0%b2%d0%b5%d1%80%d1%81%d0%b8%d1%8f%d1%85-%d0%b8%d0%b5-%d0%bf%d0%be/feed/ 2