【问题标题】:Add bookmark this page button - 2016添加书签此页面按钮 - 2016
【发布时间】:2023-03-26 22:21:01
【问题描述】:

我已经多次看到这个问题:如何为此页面按钮添加书签。但目前似乎没有解决方案。

我现在尝试使用的代码:

$('.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?

如 cmets 所述:

Firefox 的专有 window.sidebar.addPanel(..) 已被弃用,the function was removed in Firefox 23(见第三个项目符号)
– Will Hawker

据推测,迄今为止的 FF 解决方案不再起作用,但 Opera 解决方案也不起作用。 (虽然我还不能测试 IE 解决方案)。

这带来了一个明显的问题:您如何获得一个书签按钮?尽量支持浏览器。

【问题讨论】:

  • window.sidebar.addPanel 功能是非标准的,不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且未来的行为可能会发生变化。
  • 如前所述,自 FF 23 起已弃用。

标签: javascript jquery html bookmarks


【解决方案1】:

由于没有解决方案,这是我经过一番研究后能想到的最好的解决方案。

// 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;
});

【讨论】:

  • 这不适用于移动浏览器。您能否建议我应该如何在移动浏览器上启用此功能?我已经在 android 设备上使用 mozilla 进行了测试。
  • 您可能也可以检查移动浏览器,我最终只是将按钮隐藏在移动浏览器中。
  • 这个答案似乎已经过时,欢迎任何更新。
猜你喜欢
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 2013-11-18
  • 2019-08-18
  • 1970-01-01
相关资源
最近更新 更多