添加书签此页按钮 - 2016
Add bookmark this page button - 2016
我已经多次看到这个问题:如何添加书签这个页面按钮。但目前似乎没有有效的解决方案。
我目前尝试使用的代码:
$('.js-bookmarkme').click(function(e) {
e.preventDefault();
if (window.sidebar && window.sidebar.addPanel) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(document.title,window.location.href,'');
} else if(window.external && ('AddFavorite' in window.external)) { // IE Favorite
window.external.AddFavorite(location.href,document.title);
} else if(window.opera && window.print) { // Opera Hotlist
this.title=document.title;
return true;
} else { // webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
来源:How do I add an “Add to Favorites” button or link on my website?
如评论所述:
Firefox's propriety window.sidebar.addPanel(..) has been deprecated, and the function was removed in Firefox 23 (see third bullet)
– Will Hawker
据说迄今为止的 FF 解决方案不再有效,但 Opera 解决方案也无效。 (虽然我还不能测试 IE 解决方案)。
这带来了一个明显的问题:如何实现书签按钮?尽量有浏览器支持。
由于没有解决方案,这是经过一些研究后我能想到的最好的解决方案。
// Bookmark me
$('.js-bookmarkme').click(function(e) {
e.preventDefault();
var bookmarkURL = window.location.href;
var bookmarkTitle = document.title;
if ('addToHomescreen' in window && window.addToHomescreen.isCompatible) {
// Mobile browsers
addToHomescreen({ autostart: false, startDelay: 0 }).show(true);
} else if (window.sidebar && window.sidebar.addPanel) {
// Firefox version < 23
window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
} else if ((window.sidebar && /Firefox/i.test(navigator.userAgent)) || (window.opera && window.print)) {
// Firefox version >= 23 and Opera Hotlist
$(this).attr({
href: bookmarkURL,
title: bookmarkTitle,
rel: 'sidebar'
}).off(e);
return true;
} else if (window.external && ('AddFavorite' in window.external)) {
// IE Favorite
window.external.AddFavorite(bookmarkURL, bookmarkTitle);
} else {
// Other browsers (mainly WebKit - Chrome/Safari)
alert('Please press ' + (/Mac/i.test(navigator.userAgent) ? 'CMD' : 'Strg') + ' + D to add this page to your favorites.');
}
return false;
});
我已经多次看到这个问题:如何添加书签这个页面按钮。但目前似乎没有有效的解决方案。
我目前尝试使用的代码:
$('.js-bookmarkme').click(function(e) {
e.preventDefault();
if (window.sidebar && window.sidebar.addPanel) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(document.title,window.location.href,'');
} else if(window.external && ('AddFavorite' in window.external)) { // IE Favorite
window.external.AddFavorite(location.href,document.title);
} else if(window.opera && window.print) { // Opera Hotlist
this.title=document.title;
return true;
} else { // webkit - safari/chrome
alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
}
});
来源:How do I add an “Add to Favorites” button or link on my website?
如评论所述:
Firefox's propriety window.sidebar.addPanel(..) has been deprecated, and the function was removed in Firefox 23 (see third bullet)
– Will Hawker
据说迄今为止的 FF 解决方案不再有效,但 Opera 解决方案也无效。 (虽然我还不能测试 IE 解决方案)。
这带来了一个明显的问题:如何实现书签按钮?尽量有浏览器支持。
由于没有解决方案,这是经过一些研究后我能想到的最好的解决方案。
// Bookmark me
$('.js-bookmarkme').click(function(e) {
e.preventDefault();
var bookmarkURL = window.location.href;
var bookmarkTitle = document.title;
if ('addToHomescreen' in window && window.addToHomescreen.isCompatible) {
// Mobile browsers
addToHomescreen({ autostart: false, startDelay: 0 }).show(true);
} else if (window.sidebar && window.sidebar.addPanel) {
// Firefox version < 23
window.sidebar.addPanel(bookmarkTitle, bookmarkURL, '');
} else if ((window.sidebar && /Firefox/i.test(navigator.userAgent)) || (window.opera && window.print)) {
// Firefox version >= 23 and Opera Hotlist
$(this).attr({
href: bookmarkURL,
title: bookmarkTitle,
rel: 'sidebar'
}).off(e);
return true;
} else if (window.external && ('AddFavorite' in window.external)) {
// IE Favorite
window.external.AddFavorite(bookmarkURL, bookmarkTitle);
} else {
// Other browsers (mainly WebKit - Chrome/Safari)
alert('Please press ' + (/Mac/i.test(navigator.userAgent) ? 'CMD' : 'Strg') + ' + D to add this page to your favorites.');
}
return false;
});