Столкнувшись с задачей, создать на сайте ссылку( или кнопку ) «Добавить в закладки», было найдено не сколько вариантов решения этой задачи. И все вроде хорошие, но каждый чем то мне не угодил.
И так было отобрано 2 варианта
И плагин jFav1.0 под jQuery.
Грузить библиотеку jQuery с плагином, не очень хотелось, ради одной маленькой ссылки.
а первый код никак не хотел отрабатывать в Опере.
Пришлось включить мозг:
в IE сущестувет
в FF
в Operе добавлялась при помощи плагина jFav1.0
поковырявшись в коде этого плагина, я понял (спасибо создателям jFav1.0 ), что для Оперы не надо никакого скрипта, достаточно простой ссылки
«Микроформаты» — подумал я, вот какая от вас польза.
FF любимый, меня тоже не подвёл, по клику на такую ссылку, открывает окошко «Добавить в закладки».
Сафари и Хром оказались не пределах, спокойно переходили страницу указанную в ссылке.
Для них я не нашёл хорошего решения, пришлось остановится на банальном
В результате получился такой код:
Рабочий пример
Остался открытым вопрос Сафари и Хрома,
может у кого то есть элегантное решение для них?
Код тестировался под Windows PX — FF3.5.4, Opera 10.01. IE6-8, Safary 3.2.1, Chrome 3.0.195.27
И так было отобрано 2 варианта
Первый
function AddToFavorites(title, url) {
if (window.sidebar) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(title, url,"");
return false;
}
else if( window.external ) { // IE Favorite
window.external.AddFavorite( url, title);
return false;
}
else if(window.opera && window.print) { // Opera Hotlist
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
return false;
}
}
И второй
И плагин jFav1.0 под jQuery.
Грузить библиотеку jQuery с плагином, не очень хотелось, ради одной маленькой ссылки.
а первый код никак не хотел отрабатывать в Опере.
Пришлось включить мозг:
в IE сущестувет
window.external.AddFavorite( url, title);
— тут все просто в FF
window.sidebar.addPanel(title, url,"");
— тоже просто в Operе добавлялась при помощи плагина jFav1.0
поковырявшись в коде этого плагина, я понял (спасибо создателям jFav1.0 ), что для Оперы не надо никакого скрипта, достаточно простой ссылки
add this page to bookmark
с атрибутом rel=«sidebar» .«Микроформаты» — подумал я, вот какая от вас польза.
FF любимый, меня тоже не подвёл, по клику на такую ссылку, открывает окошко «Добавить в закладки».
Сафари и Хром оказались не пределах, спокойно переходили страницу указанную в ссылке.
Для них я не нашёл хорошего решения, пришлось остановится на банальном
alert('Pls, press Ctrl + D or CMD + D for MAC, \n to add this page to your bookmarks.');
В результате получился такой код:
// JS
function bookmark(a){
if (window.sidebar){ // firefox
return false;
}
else if(window.opera && window.print){ // opera
return false;
}
else if(document.all){ // ie
window.external.AddFavorite(a.href2 || a.href, a.title);
if(!a.href2){
a.href2 = a.href;
a.href="#";
}
} else {
alert('Pls, press Ctrl + D or CMD + D for MAC, \n to add this page to your bookmarks.');
a.href=+"#";
return false;
}
}
//HTML
<a href="http://yoursite/" rel="sidebar" onclick="bookmark(this)" title="My JS Bookmarks" > add this page to bookmark </a>
Рабочий пример
Остался открытым вопрос Сафари и Хрома,
может у кого то есть элегантное решение для них?
Код тестировался под Windows PX — FF3.5.4, Opera 10.01. IE6-8, Safary 3.2.1, Chrome 3.0.195.27