Domanda

    

Questa domanda ha già una risposta qui:

         

Come per fare questo lavoro in Opera? Ho trovato questo pezzo di codice per Opera, ma non funziona per me:

 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 errore di Dragonfly è silenzioso, nessun errore sono in corso.

È stato utile?

Soluzione

Se si insiste su di esso, quindi farlo senza collegamenti ridondanti generati in modo dinamico:

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

ma per favore, basta non farlo.

Come utente Opera sarò grato per non spingere quel fad -. Posso scheda facilmente drag'n'drop ai preferiti bar / pannello / scopo di selezionare direttamente se scelgo di

Altri suggerimenti

Opera fa rispettare le stesse esigenze degli utenti-evento per consentire bookmarking, in tal modo il codice che avete non funziona, perché l'utente non ha fatto clic sul collegamento appena creato .

Hai bisogno di qualcosa di più simile a questo:

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

chiamata con

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

(sentitevi liberi di fare più discreto, volevo solo per indicare il requisito di utente-evento)

Il modo per ottenere "Aggiungi ai preferiti" lavoro collegamento in Opera 10 è quello di aggiungere dinamicamente un rel attributo per un collegamento

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

Il seguente codice funziona in Opera 8.54. Non funziona in 9.27 o 9.63 (le uniche due altre versioni che ho a disposizione per i test). In 9.27 e 9.63 semplicemente si naviga a 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 sospettato che hanno tolto la possibilità di aggiungere un segnalibro / preferito, senza l'utente che avvia esso. Dal momento che si può già forzare il browser per navigare verso un nuovo URL utilizzando window.location che, probabilmente, non è considerato una vulnerabilità DoS.

Il seguente funziona bene se l'utente fa clic sul 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);

Inoltre, window.external.AddFavorite(url, title); non consente più non utente avviato oltre preferita in Internet Explorer 8 Beta 2. Tuttavia, se si include come l'evento onclick di un link, funziona benissimo:

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

Sia Firefox 2.0.0.18 e 3.0.4 attualmente sostegno non attivato dall'utente Bookmark Inoltre, ma non sarebbe stato un po 'sorpreso di vederli rimuoverlo in una versione futura pure.

Credo che è considerato cattiva forma e un po 'maleducata per cercare di forzare un visitatore di un sito web per aggiungere un Preferito / segnalibro senza di loro facendo clic su un link o di prendere un'azione esplicita che avrebbe farlo. Semplicemente visitando un sito web non è una ragione sufficiente per cercare di forzare i visitatori di aggiungere un Preferito / Bookmark ad esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top