Question

    

Cette question a déjà une réponse ici:

         

Comment faire ce travail dans Opera? J'ai trouvé ce morceau de code pour Opera, mais il ne fonctionne pas pour moi:

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

La console d'erreur Dragonfly est silencieuse, aucune erreur n'INTERVENUES.

Était-ce utile?

La solution

Si vous insistez là-dessus, puis le faire sans liens redondants générés dynamiquement:

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

mais s'il vous plaît, il suffit de ne pas le faire.

En tant qu'utilisateur Opera, je serai reconnaissant pour ne pas pousser ce mode -. Je peux facilement onglet drag'n'drop à la barre de favoris / panneau / de speedial si je choisis de

Autres conseils

Opera applique la même exigence d'événement utilisateur pour permettre bookmarking, donc le code que vous avez ne fonctionnera pas, parce que l'utilisateur n'a jamais cliqué sur le lien que vous venez de créer .

Vous avez besoin quelque chose comme ceci:

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

avec CAll

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

(ne hésitez pas à faire plus discret, je voulais juste indiquer l'exigence d'événement utilisateur)

La façon d'obtenir « Ajouter aux favoris » lien de travail dans Opera 10 est d'ajouter dynamiquement une rel attribut à un lien

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

Le code suivant fonctionne dans Opera 8.54. Il ne fonctionne pas 9,27 ou 9,63 (les deux seules autres versions dont je dispose pour le test). En 9,27 et 9,63, il vous suffit de Yahoo navigue:

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();

suspect qui ils ont enlevé la possibilité d'ajouter un signet / favori sans que l'utilisateur l'initier. Comme vous pouvez déjà forcer le navigateur pour accéder à une nouvelle URL à l'aide window.location qui ne sont pas considérés comme probablement une vulnérabilité DoS.

Ce qui suit fonctionne très bien si l'utilisateur clique sur le lien:

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

En outre, window.external.AddFavorite(url, title); ne permet pas l'utilisateur a lancé plus favori dans Internet Explorer 8 Beta 2. Toutefois, si vous incluez comme l'événement onclick d'un lien, il fonctionne très bien:

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

Les deux Firefox 2.0.0.18 et 3.0.4 prennent actuellement en charge non plus l'utilisateur initié Bookmark, mais je ne serais pas un peu surpris de les voir supprimer dans une version avenir.

Je crois qu'il est considéré comme une mauvaise forme et un peu rude pour essayer de forcer un visiteur à un site Web pour ajouter un favori / Bookmark sans les en cliquant sur un lien ou de prendre une action explicite qui le faire. Une simple visite d'un site Web n'est pas une raison suffisante pour essayer de forcer les visiteurs à ajouter un favori / Bookmark lui.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top