¿Cómo agrego un botón o enlace "Agregar a favoritos" en mi sitio web?

Resuelto webmaniacgr asked hace 12 años • 5 respuestas

Estoy construyendo un sitio web usando Drupal. En el encabezado de cada página quiero tener una sola imagen (diseñada por mí a medida) que actuaría como un botón personalizado "Agregar a favoritos". Al hacer clic en la imagen se debe agregar la URL del sitio web a los favoritos (marcadores) del navegador del usuario. Esto debería funcionar para todos los navegadores, IE7+, FF, Opera, Chrome. No pude encontrar mucha información para esto en línea. Supongo que javascript debería funcionar, pero no tengo mucha experiencia en Javascript :) ¡así que necesito tu ayuda!

webmaniacgr avatar Apr 06 '12 00:04 webmaniacgr
Aceptado

Versión jQuery

$(function() {
  $('#bookmarkme').click(function() {
    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.');
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a>
Expandir fragmento

iambriansreed avatar Apr 05 '2012 17:04 iambriansreed

Este código es la versión corregida de la respuesta de iambriansreed:

<script type="text/javascript">
    $(function() {
        $("#bookmarkme").click(function() {
            // Mozilla Firefox Bookmark
            if ('sidebar' in window && 'addPanel' in window.sidebar) { 
                window.sidebar.addPanel(location.href,document.title,"");
            } else if( /*@cc_on!@*/false) { // IE Favorite
                window.external.AddFavorite(location.href,document.title); 
            } else { // webkit - safari/chrome
                alert('Press ' + (navigator.userAgent.toLowerCase().indexOf('mac') != - 1 ? 'Command/Cmd' : 'CTRL') + ' + D to bookmark this page.');
            }
        });
    });
</script>
Real Dreams avatar Mar 01 '2013 14:03 Real Dreams

He enfrentado algunos problemas con rel="sidebar". cuando lo agrego en la etiqueta de enlace, los marcadores funcionarán en FF pero dejarán de funcionar en otro navegador. así que lo soluciono agregando rel="sidebar" dinámico por código:

jQuery('.bookmarkMeLink').click(function() {
    if (window.sidebar && window.sidebar.addPanel) { 
        // Mozilla Firefox Bookmark
        window.sidebar.addPanel(document.title,window.location.href,'');
    }
    else if(window.sidebar && jQuery.browser.mozilla){
        //for other version of FF add rel="sidebar" to link like this:
        //<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a>
        jQuery(this).attr('rel', 'sidebar');
    }
    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.');

    }
});
Alaa.Kh avatar Oct 03 '2013 15:10 Alaa.Kh