#javascript #jquery
#javascript #jquery
Вопрос:
Есть ли способ сохранить текущую страницу в качестве закладки (через jQuery или иным образом) при нажатии определенной кнопки?
Комментарии:
1. в вашем собственном браузере? или в какую-нибудь социальную сеть?
Ответ №1:
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("a.jQueryBookmark").click(function(e){
e.preventDefault(); // this will prevent the anchor tag from going the user off to the link
var bookmarkUrl = this.href;
var bookmarkTitle = this.title;
if (window.sidebar) { // For Mozilla Firefox Bookmark
window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
} else if( window.external || document.all) { // For IE Favorite
window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
} else if(window.opera) { // For Opera Browsers
$("a.jQueryBookmark").attr("href",bookmarkUrl);
$("a.jQueryBookmark").attr("title",bookmarkTitle);
$("a.jQueryBookmark").attr("rel","sidebar");
} else { // for other browsers which does not support
alert('Your browser does not support this bookmark action');
return false;
}
});
});
</script>
Этот код взят у Developersnippets!
/e:
Chrome не поддерживает такие действия, поскольку уровень безопасности может быть нарушен.
Комментарии:
1. Как я могу заставить это работать в Chrome? В Chrome предупреждающее сообщение даже не отображается…
2. Чтобы предотвратить выдачу ошибки в Chrome, вы должны использовать,
else if(window.external amp;amp; window.external.AddFavorite)
посколькуwindow.external
это определено в Chrome, но неwindow.external.AddFavorite
.
Ответ №2:
Поскольку Chrome не поддерживает такое действие, решением могло бы быть сначала проверить, используется ли браузер Chrome, и если да, то предупредить пользователя о том, что функция закладки не поддерживается. Тогда для других случаев скрипт, предоставленный на DevelopersSnippets, работает нормально.
Пример:
$("a.bookmark").click(function(e){
e.preventDefault(); // this will prevent the anchor tag from going the user off to the link
var bookmarkUrl = this.href;
var bookmarkTitle = this.title;
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
alert("This function is not available in Google Chrome. Click the star symbol at the end of the address-bar or hit Ctrl-D (Command D for Macs) to create a bookmark.");
}else if (window.sidebar) { // For Mozilla Firefox Bookmark
window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
} else if( window.external || document.all) { // For IE Favorite
window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
} else if(window.opera) { // For Opera Browsers
$("a.bookmark").attr("href",bookmarkUrl);
$("a.bookmark").attr("title",bookmarkTitle);
$("a.bookmark").attr("rel","sidebar");
} else { // for other browsers which does not support
alert('Your browser does not support this bookmark action');
return false;
}
});
Ответ №3:
Попробуйте это:
if (window.sidebar) // firefox
window.sidebar.addPanel(title, url, "");
else if(window.opera amp;amp; window.print){ // opera
var elem = document.createElement('a');
elem.setAttribute('href',url);
elem.setAttribute('title',title);
elem.setAttribute('rel','sidebar');
elem.click();
}
else if(document.all)// ie
window.external.AddFavorite(url, title);
}
Ответ №4:
Я думаю, что плагин jquery Bookmark — это то, что вы ищете. jBrowserBookmark позволяет добавлять функциональность на сайт, которая позволяет добавлять страницу в список boookmark браузеров. Эта функция поддерживается браузерами Internet Explorer, Firefox, Opera и Konqueror.Вы можете получить это здесь
Комментарии:
1. Заменил старую / нерабочую ссылку на другую, не уверен, что это тот же автор, но это одна из первых ссылок при поиске по этому имени. Плагин — это просто инкапсуляция методов из других ответов.