Добавить в избранное на JQuery. Ссылка "добавить в избранное" для всех браузеров Добавить в избранное q node


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

Как добавить сайт в закладки (избранное)? Используем JavaScript Создаём файл с названием bookmark.js . В него вставляем указанный ниже код.

Код JavaScript (файл bookmark.js )

Function AddToBookmark(a)
{
var title = window.document.title; // запоминаем заголовок активной страницы/вкладки
var url = window.document.location; // адрес тоже запоминаем

If (window.sidebar) { // такой объект есть только в Gecko
window.sidebar.addPanel(title, url, ""); // используем его метод добавления закладки
}
else if (typeof(opera)=="object") { // есть объект opera?
a.rel="sidebar"; // добавлем закладку, смотрите вызов функции ниже
a.title=title;
a.url=url;
return true;
}
else if(document.all) { // ну значит это Internet Explorer
window.external.AddFavorite(url, title); // используем соответсвующий метод
}
else {
alert("Для добавления страницы в Избранное нажмите Ctrl+D"); // для всех остальных браузеров, в т.ч. Chrome
}

Return false;
}
Ну и чтобы скрипт заработал, достаточно подключить файл bookmark.js и вставить ссылку с js , которая при клике вызывала бы работу скрипта.

Код HTML



Пример работы Добавления вкладок


Добавить ссылку в избранное



На самом деле я бы рекомендовал остановиться на этом варианте. Второй я предложу уже больше ради разнообразия, поскольку в нём есть свои проблемы.

Как добавить сайт в избранное? Второй вариант Раньше функция работала только в Internet Explorer, а после правок в HTML 5 работает в Opera и Mozilla, но не во всех версиях IE и Chrome.

Перед закрывающим тегом head вставляем


function addYoursite() {
if (document.all) window.external.addFavorite("http:/yoursite.ru", "Сайт yoursite.ru");
}

Только соответственно меняем yoursite.ru на адрес Вашего сайта.

Добавить в избранное

И соответственно тоже меняем yoursite.ru на адрес Вашего сайта.

Готово. Проверяем.

Многие вебмастера похоронили такой вид привлечения постоянных читателей блога, как прямые переходы пользователей из закладок . Именно о добавлении станицы в закладки – целесообразности этой функции на сайте мы сейчас и поговорим.

Отчасти это связанно с тем, что ведущие сео блоги (куда обращены все взоры начинающих и не очень начинающих вебмастеров) ориентированы на свою возрастную аудиторию, которая в основной своей массе пользуется RSS ридерами или вовсе Твиттером. Сейчас действительно очень редко где можно встретить кнопочку – “добавить страницу в закладки”. А вот и зря! Некоторые тематики подразумевают более возрастную группу, которая с большим трудом переваривает “нововведения” вроде twitter’ов, и даже RSS ридеров, которые уже давно вошли в обиход.

Таким людям гораздо понятнее закладочка – Избранное , где все сайты лежат отсортированными в любимом браузере.

Конечно же, никто не запрещает таким фанатам закладок нажать заветное сочетание клавиш Ctrl + D и добавить, таким образом, заветную закладку, но ведь для очень многих людей, жуткие комбинации на клавиатуре, пускай даже состоящие всего из 2ух клавиш – это как ладан для черта.

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

Итак, задача – разместить на сайте кроссбраузерную кнопку “Добавить в Закладки” или “Добавить в Избранное” – как вам больше нравится. Главное, повторюсь – это кроссбраузерность, т.е. работоспособность этой кнопки в ведущих браузерах – Google Chrome, Mozilla Firefox, Opera, Internet Explorer.

Скажете легкая задачка?! Отнюдь – все проблемы кроются в универсальности кода, в его кроссбраузерности . Один код подходит только для Internet Explorer’a и не работает для других браузеров.

Вот пример, который наиболее распространен в интернете.

Добавить в избранное

Или вот вариант простенького, но бесполезного java скрипта:

Add this Page to your Favorites

Данные коды работают только с браузером Internet Еxplorer! Чтобы скрипт по добавлению закладки был действительно кроссбраузерным, в нем должна быть встроена проверка браузера клиента и в зависимости от браузера использоваться соответствующий код добавления в закладки .

Данный скрипт работает с бразуерами Firefox, Opera, но вот Гугловский Хром его не понимает и в выводит предложение нажать Ctrl + D добавив таким образом страницу в закладки.

Но это лучшее, что мне удалось накопать на просторах интернета (установка антенн не в счёт!).

Кроссбраузерный скрипт:

< script type="text/javascript">
function getBrowserInfo() {
var t,v = undefined;

if (window.chrome) t = "Chrome";
else if (window.opera) t = "Opera";
else if (document.all) {
t = "IE";
var nv = navigator.appVersion;
var s = nv.indexOf("MSIE")+5;
v = nv.substring(s,s+1);
}
else if (navigator.appName) t = "Netscape";

return {type:t,version:v};
}

function bookmark(a){
var url = window.document.location;
var title = window.document.title;
var b = getBrowserInfo();

if (b.type == "IE" && 8 > = b.version && b.version > = 4) window.external.AddFavorite(url,title);
else if (b.type == "Opera") {
a.href = url;
a.rel = "sidebar";
a.title = url+","+title;
return true;
}
else if (b.type == "Netscape") window.sidebar.addPanel(title,url,"");
else alert("Нажмите CTRL-D, чтобы добавить страницу в закладки.");
return false;
}
< /script>


Добавить в избранное < /a >

Для использования этого скрипта на своем сайте, надо добавить верхнюю часть, которая между тэгами < script type="text/javascript" > и в заколовок (header) вашей темы.

Если у вас будет решение – как добавить функцию добавления в закладки для браузера Хром в скрипт, тогда отзовитесь, пожалуйста, в комментариях!

Одно время на сайтах была популярна ссылка «Добавить сайт в избранное», при нажатии на которую адрес сайта заносился в закладки браузера. Впрочем, почему была? Периодически на сайтах подобная ссылка встречается до сих пор. Беда в том, что используемый для этой цели скрипт не работает во многих браузерах, поэтому его ценность близка к нулю. В HTML5 расширились возможности атрибута rel тега и теперь с его помощью можно легко добавлять в избранное любые сайты и отдельные страницы.

Достаточно к ссылке добавить rel="sidebar" и при нажатии на нее откроется специальная панель в браузере для создания новой закладки. Пока значение sidebar поддерживают два браузера - Firefox и Opera, остальные игнорируют атрибут rel и переходят по указанной ссылке как обычно.

Чтобы расширить количество браузеров и добавить к ним IE, к ссылке также можно подключить небольшой скрипт. В итоге получится, что Firefox, Opera, Internet Explorer вызовут специальную панель, остальные браузеры перейдут по ссылке (пример 1).

Пример 1. Добавление в избранное

HTML5 IE Cr Op Sa Fx

Добавить в избранное function addBookmark() { if (document.all) window.external..ru"); }

Добавить в избранное

Как в итоге выглядит применение rel="sidebar" ? Результат зависит от браузера. Firefox к примеру открывает такое окно (рис. 1).

Рис. 1. Добавление в избранное в Firefox

В Opere вид несколько другой, но смысл аналогичный (рис. 2).

Рис. 2. Добавление в избранное в браузере Opera

У Internet Explorer самый лаконичный интерфейс (рис. 3).

Рис. 3. Добавление в избранное в браузере Internet Explorer

Пока использование атрибута rel непривычно из-за его слабой поддержки браузерами, но потенциал у него огромный, а число значений постепенно расширяется. Так что включать в ссылки его надо.

Кроссбраузерное добавление страницы в закладки реализуется с использованием JavaScript. Для добавления страницы в Избранное браузеров Internet Explorer и браузеров, работающих на движке IE, вызывается стандартный метод AddFavorite . Однако здесь есть одна важная деталь. Если страница IE открыта как embedded-объект в другом приложении, например в плагинах или при использовании компонентов для работы с html, то объект window.external присутствует, но его метод AddFavorite не срабатывает. Это наиболее частая ошибка разработчиков, которые просто копируют код друг у друга без его понимания и тестирования. Также большой ошибкой будет использование на своем сайте только одного этого способа.

Браузеры на движке Gecko, такие как Firefox, Netscape, K-Meleon и другие, имеют объект window.sidebar и метод для добавления addPanel . Третий параметр метода недокументирован и является необязательным, поэтому в скрипте заменяется просто пустой строкой. Обратите внимание, что по умолчанию ссылка добавляется не совсем в закладки, а в боковую панель браузера. Для добавления страницы в нужную папку закладок выберите ее в выпадающем меню.

Для браузера Opera ссылка добавления в закладки должна иметь атрибут rel=»sidebar» . Но если этот атрибут ставить сразу по умолчанию, то некоторые браузеры типа Netscape будут отрабатывать функцию добавления в закладки дважды: первый раз через скрипт и второй раз через атрибут rel. Поэтому придется изменять атрибуты ссылки динамически, предварительно определив браузер проверкой типа объекта opera.

Если ни один из перечисленных способов не сработал, то не надо выдавать сообщение об ошибке или еще хуже, молча завершать выполнение скрипта. Будет гораздо правильнее показать пользователю доступный вариант решения задачи, например предложить вручную нажать комбинацию клавиш Ctrl+D .

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

// Добавить в Избранное function add_favorite(a) { title=document.title; url=document.location; try { // Internet Explorer window.external.AddFavorite(url, title); } catch (e) { try { // Mozilla window.sidebar.addPanel(title, url, ""); } catch (e) { // Opera if (typeof(opera)=="object") { a.rel="sidebar"; a.title=title; a.url=url; return true; } else { // Unknown alert("Нажмите Ctrl-D чтобы добавить страницу в закладки"); } } } return false; }

Добавить в Избранное

Рабочий пример реализации вы можете увидеть прямо на этой странице. Использование конструкций try-catch позволяет скрипту правильно отрабатывать в любых нестандартных ситуациях, например в окне IE Tab, открытом в браузере Firefox. Также скрипт корректно работает в различных экзотических браузерах, которые нельзя однозначно определить через UserAgent или DOM-свойства . Всякие хваленые коммерческие поделки типа DLE в этой ситуации молча обламываются.

Что еще почитать