Frage

    

Diese Frage bereits eine Antwort hier:

         

Wie diese Arbeit in der Oper machen? Ich fand dieses Stück Code für Opera, aber es für mich nicht funktioniert:

 function AddToFavorites(title, url) {

    if (window.sidebar) { // Mozilla Firefox Bookmark
        window.sidebar.addPanel(title, url,"");
        return false;
    } 
    else if( window.external ) { // IE Favorite
        window.external.AddFavorite( url, title); 
        return false;
    }
    else if(window.opera && window.print) { // Opera Hotlist
                var elem = document.createElement('a');
                elem.setAttribute('href',url);
                elem.setAttribute('title',title);
                elem.setAttribute('rel','sidebar');
                elem.click();
                return false;
    }
 }

Die Libelle Fehlerkonsole schweigt, werden keine Fehler auftreten.

War es hilfreich?

Lösung

Wenn Sie darauf bestehen, dann ist es tun, ohne dynamisch generierte redundante Verbindungen:

 <a href="http://real.url.example.com" title="Bookmark me, pleaeease!" 
    rel="sidebar"
    onclick="return !addToFav(this.href,this.title)">

aber bitte, tun Sie es einfach nicht.

Als Opera Benutzer werde ich dankbar sein, nicht so fad drängen -. Ich kann leicht drag'n'drop Registerkarte Lesezeichen Bar / Platte / speedial wenn ich wählen, um

Andere Tipps

Opera die gleiche Benutzerereignis Anforderung erzwingt bookmarking ermöglichen, so dass der Code, den Sie wird nicht funktionieren, weil der Benutzer nie auf den Link geklickt haben Sie gerade erstellt .

Sie brauchen etwas mehr wie folgt aus:

function AddToFavorites(obj, title, url){
  if(window.sidebar){
    // Mozilla Firefox Bookmark
    window.sidebar.addPanel(title, url,"");
    return false;
  } else if(window.external){
    // IE Favorite
    window.external.AddFavorite( url, title);
    return false;
  } else if(window.opera && window.print){
    //Opera Hotlist
    obj.setAttribute('href',url);
    obj.setAttribute('title',title);
    obj.setAttribute('rel','sidebar');
    obj.click();
    return false;
  }
}

Aufruf mit

<a href="#" onclick="AddToFavorites(this, 'your title', 'your url');">Bookmark This Page</a>

(fühlen Sie sich frei unauffälliger zu machen, ich wollte nur die Benutzer-Ereignis Anforderung angeben)

Die Art und Weise "Zu Favoriten hinzufügen" -Link Arbeit in Opera zu bekommen 10 ist dynamisch hinzufügen ein rel Attribut auf einen Link

$('#add_to_favs').attr('rel','sidebar');

Der folgende Code funktioniert in Opera 8.54. Es funktioniert nicht in 9.27 oder 9.63 (die nur noch zwei weitere Versionen, die ich zum Testen zur Verfügung haben). In 9,27 und 9,63 es navigiert Sie einfach bei Yahoo:

var url = 'http://www.yahoo.com/';
var title = 'Yahoo!';
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.click();

I verdächtigt , dass sie die Fähigkeit entfernt ein Lesezeichen / Favoriten ohne dass der Benutzer initiieren es hinzuzufügen. Da Sie bereits den Browser zu einer neuen URL zu navigieren zwingen können window.location verwenden, die wahrscheinlich nicht eine DoS-Schwachstelle angesehen wird.

Die folgenden funktioniert gut, wenn der Benutzer auf den Link klickt:

var url = 'http://www.yahoo.com/';
var title = 'Yahoo!';
var elem = document.createElement('a');
elem.setAttribute('href', url);
elem.setAttribute('title', title);
elem.setAttribute('rel', 'sidebar');
elem.appendChild(document.createTextNode('Add Bookmark'));
document.getElementsByTagName('body')[0].appendChild(elem);

Darüber hinaus window.external.AddFavorite(url, title); nicht mehr erlaubt Nicht-Benutzer beliebt zusätzlich in Internet Explorer 8 Beta 2 jedoch ausgelöst, wenn Sie es als onclick Fall eines Link einzufügen, es funktioniert gut:

<a href="http://www.yahoo.com/" title="Yahoo!" onclick="window.external.AddFavorite(this.href, this.title);return false;">Add to Favorites</a>

Sowohl Firefox 2.0.0.18 und 3.0.4 unterstützt derzeit nicht-Benutzer initiiert Lesezeichen hinaus, aber ich würde ein wenig überrascht nicht, sie es auch in einer zukünftigen Version zu sehen entfernen.

Ich glaube, es gilt als schlechte Form und ein bisschen unhöflich zu versuchen, einen Besucher auf eine Website zu zwingen, einen Favoriten / Lesezeichen hinzufügen, ohne sie einen Link oder nehmen eine explizite Aktion klicken, die das tun würde. Einfach den Besuch einer Website nicht Grund genug, ist zu versuchen, die Besucher zu zwingen, einen Favoriten / Lesezeichen, um es hinzuzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top