Pergunta

Como fazer este trabalho em Opera? Eu encontrei este pedaço de código para o Opera, mas ele não funciona para mim:

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

O console de erro Dragonfly é silencioso, sem erros estão ocorrendo.

Foi útil?

Solução

Se você insistir em que, em seguida, fazê-lo sem links redundantes gerados dinamicamente:

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

mas por favor, apenas não fazê-lo.

user Como Opera Serei grato por não empurrando esse modismo -. Eu posso facilmente drag'n'drop guia para a barra de favoritos / panel / speedial se eu optar por

Outras dicas

Opera impõe a mesma exigência user-evento para permitir bookmarking, assim o código que você tem não vai funcionar, porque o usuário nunca clicou no link que você acabou de criar .

Você precisa de algo mais parecido com isto:

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

chamada com

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

(sinta-se livre para fazer mais discreto, eu só queria para indicar a exigência user-event)

A maneira de obter "Adicionar aos favoritos" trabalho link no Opera 10 é adicionar dinamicamente um rel atributo para um link

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

O código a seguir funciona no Opera 8.54. Ele não funciona em 9,27 ou 9,63 (as únicas duas outras versões que tenho disponível para testes). Em 9,27 e 9,63 simplesmente navega você 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 suspeito que eles removeram a capacidade de adicionar um marcador / favorito sem que o usuário iniciá-la. Desde que você já pode forçar o navegador para navegar para um novo URL usando window.location que, provavelmente, não é considerado uma vulnerabilidade de negação de serviço.

A seguir funciona bem se o usuário clica no link:

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

Além disso, window.external.AddFavorite(url, title); não permite mais que não-usuário iniciou adição favorito no Internet Explorer 8 Beta 2. No entanto, se você incluí-lo como o evento onclick de um link, ele funciona muito bem:

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

Tanto o Firefox 2.0.0.18 e 3.0.4 suporta atualmente não-usuário iniciou Bookmark disso, mas eu não seria um pouco surpreso de vê-los removê-lo em uma versão futura também.

Eu acredito que é considerado uma forma ruim e um pouco rude para tentar forçar um visitante de um site para adicionar um Favorito / Bookmark sem eles clicar em um link ou tomar uma ação explícita que faria isso. Simplesmente visitar um site não é razão suficiente para tentar forçar os visitantes para adicionar um favorito / Bookmark a ele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top