JavaScript-функция (скрипт) добавления ссылок в Избранное браузера

Добавление в Избранное браузера через JavaScriptИтак небольшая заметка на тему добавления ссылок в избранное браузера через JavaScript, т.е. например, с помощью кнопки на сайте, а не в интернет-бродилке (Ctrl+D например, но о нем позже).

Вообще зачем такая фишка нужна, мне в общем-то не ясно, но раз ее впилил в свой список такой технократический гигант как addthis.com :) нам конечно срочно необходимо сделать что-то подобное.
Соответственно ниже в заметке методы достижения цели, листинг функции и пример.

В коде бибилиотеки виджета добавления ссылок кругом и всюду (addthis.com) черт ногу сломит, но внезапно на глаза попалась кнопка в виде звездочки на одном из bitrix-сайтов. Как оказалось, после нано-опыта (жмака), делает она то, что надо пытается добавить ссылку на текущую страницу в избранное браузера.

Функция в текущем виде работала только в Internet Explorer (и, видимо, других браузерах на движке Trident) и в FireFox (и соответственно в остальных Gecko-браузерах). В итоге пришлось ее немного подправить (все комментарии по правкам в коде функции), чтобы она работала еще и в Opera. В Google Chrome судя по этому ответу на оф.форуме в целях секьюрности вообще отключена возможность добавления ссылок в избранное скриптами, только руками, т.е. тот самый Ctrl+D :)

Код скрипта/функции добавления в избранное

И еще один более грамотный вариант с использованием блоков try, catch отсюда:

Еще один вариант той же функции, но с try, catch

Например такой вариант помог мне справиться с ошибкой:
Uncaught TypeError: Object #<HTMLDivElement> has no method 'addPanel' vzakladki.js:8

Соответственно протестировать можно вот так:<a href="" onclick="return AddToBookmark(this);">Добавить ссылку в избранное</a>

Пример использования

Как только на сайте появился блок для расшариваний контента «Яндекс.Поделиться», появилась идея отделить мух от котлет, т.е. закладки от соцсетей. Ну и эта функция пригодялась в скрипте минивиджета (сделанного из старинного скрипта, описанного в связанной статье), который можно наблюдать в шапке сайта под поиском (также для фана туда добавлена возможность отправки ссылки на почту! :) ну и стандартные ссылки на добавление закладок в соответствующие сервисы Яндекс и Google).

Функция и минивиджет/минискрипт добавления в закладки тестировался в Internet Explorer 8, FireFox 3.6, Opera 9 и Chrome 11 ))

Комментариев: 9

  • 13.09.2011 TopSpin:

    А куда этот код собственно вставлять?

    В код шаблона или в какое-то другое место?

    • 14.09.2011 Кирилл:

      В код шаблона или в какое-то другое место?

      Можно и туда и туда, например, на этом блоге скрипт этого «виджета» вызывается в файл шаблона header.php вот так:

      <script src="http://wmdn.ru/vzakladki.js" type="text/javascript"></script>

  • 21.09.2011 Вадим музыка НТ):

    да статья хорошая, зашёл по поисковому запросу, думал...что будет чтобы нажал на ссылку, а у него в БРАУЗЕРЕ автоматом ctrl+d нажалось. Незнаете как?

    • 21.09.2011 Кирилл:

      Статья как раз об этом, в шапке сайта (под полем поиска) наведите курсор на звездочку и затем щелкните на ссылку 'В избранное' — это будет аналогом нажатия на Ctrl+D на клавиатуре.

  • 02.03.2012 Виктор:

    протестировал свой сайт в Фаерфоксе www.progs9.narod.ru — все для веб мастера. оказалось не работает. попробовал код, что тут предложен, работает, но в окне добавления зачем-то стоит галочка «загружать в боковую панель». а нельзя без этого поля с галочкой? при ручном добавлении той галочки нет. значит нужно что б и при сохранении в фовариты по ссылке тоже не было.

  • 27.03.2012 Gregoryll:

    наконец-то, нашел достойный вариант. Молодец автор! Все толково объяснил, я сделал как написано и все работает. На мозилле точно пашет а что еще надо? Спасибо огромное таким людям как автор, учат нас дурней...

  • 20.04.2012 Алексей:

    Спасибо!

  • 23.05.2012 Дмитрий:

    Спасибо за хороший совет! Очень помогло. Я сам сайт делаю — akciy.ru, сайт на Joomle там тоже есть кнопка избранное. Спасибо ещё раз.

  • 01.10.2012 wwweber:

    Во втором примере нужно перед переменными добавить var:

    var title=document.title; var url=document.location;

    Иначе не во всех браузерах будет работать.


Добавление комментария:

 css.php