it-swarm.com.de

Wie füge ich auf meiner Website eine Schaltfläche "Zu Favoriten hinzufügen" hinzu?

Ich baue eine Website mit Drupal. In der Kopfzeile jeder Seite möchte ich ein einzelnes Bild haben (benutzerdefiniert von mir entworfen), das als benutzerdefinierte Schaltfläche "Zu Favoriten hinzufügen" fungieren würde. Durch Klicken auf das Bild wird die URL der Website zu den Favoriten (Lesezeichen) des Benutzerbrowsers hinzugefügt. Dies sollte für alle Browser funktionieren, IE7 +, FF, Opera, Chrome .. __ Ich konnte im Internet nicht viele Informationen dazu finden. Ich vermute, dass Javascript den Job erledigen sollte, aber ich habe nicht viel Erfahrung mit Javascript :), also brauche ich Ihre Hilfe!

46
webmaniacgr

jQuery-Version

$(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>

85
iambriansreed

Dieser Code ist die korrigierte Version der Antwort von 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( /*@[email protected]*/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>
21
PHPst

Ich habe einige Probleme mit rel = "sidebar" gehabt. Wenn ich es im Link-Tag hinzufüge, funktioniert das Lesezeichen für FF, aber es funktioniert nicht mehr in anderen Browsern. Ich behebe das, indem ich rel = "sidebar" dynamisch durch Code hinzufüge:

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.');

    }
});
1
Alaa.Kh
  if (window.sidebar) { // Mozilla Firefox Bookmark
     window.sidebar.addPanel(document.title,location.href,"");

Es fügt das Lesezeichen aber in der Seitenleiste hinzu.

1
Dima

Gutschrift an @Gert Grenander , @ Alaa.Kh , und Ross Shanon

Versuchen, eine Bestellung zu machen:

alles funktioniert - alles außer der Firefox-Bookmarking-Funktion. Aus irgendeinem Grund ist das 'window.sidebar.addPanel' keine Funktion für den Debugger, obwohl es gut funktioniert.

Das Problem ist, dass es seine Werte aus dem aufrufenden <a ..> tag: title als Lesezeichennamen und href als Lesezeichenadresse übernimmt. Dies ist also mein Code:

javascript:

$("#bookmarkme").click(function () {
  var url = 'http://' + location.Host; // i'm in a sub-page and bookmarking the home page
  var name = "Snir's Homepage";

  if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1){ //chrome
    alert("In order to bookmark go to the homepage and press " 
        + (navigator.userAgent.toLowerCase().indexOf('mac') != -1 ? 
            'Command/Cmd' : 'CTRL') + "+D.")
  } 
  else if (window.sidebar) { // Mozilla Firefox Bookmark
    //important for firefox to add bookmarks - remember to check out the checkbox on the popup
    $(this).attr('rel', 'sidebar');
    //set the appropriate attributes
    $(this).attr('href', url);
    $(this).attr('title', name);

    //add bookmark:
    //  window.sidebar.addPanel(name, url, '');
    //  window.sidebar.addPanel(url, name, '');
    window.sidebar.addPanel('', '', '');
  } 
  else if (window.external) { // IE Favorite
        window.external.addFavorite(url, name);
  } 
  return;
});

html:

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

Im Internet Explorer gibt es einen Unterschied zwischen 'addFavorite': <a href="javascript:window.external.addFavorite('http://tiny.cc/snir','snir-site')">..</a> Und 'addFavorite': <span onclick="window.external.AddFavorite(location.href, document.title);">..</span>.

beispiel hier: http://www.yourhtmlsource.com/javascript/addtofavorites.html

Wichtig ist, dass in Chrome keine Lesezeichen mit js ( aspnet-i ) hinzugefügt werden können: http://www.codeproject.com/Questions/452899/How-to-add-bookmark-in -Google-Chrome-Opera-and-Saf

0
snir