Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

Como hacer este trabajo en Opera? He encontrado este pedazo de código para Opera, pero no funciona para mí:

 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 consola de errores de la libélula es silenciosa, no se están produciendo errores.

¿Fue útil?

Solución

que insisten en que, a continuación, hacerlo sin enlaces redundantes generados dinámicamente:

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

pero por favor, simplemente no hacerlo.

Como usuario de Opera estaré agradecido por no empujar esa moda -. Puedo pestaña facilidad de arrastrar y soltar a la barra de marcadores / Panel / SPEEDIAL si optar por

Otros consejos

Opera hace cumplir el mismo requisito de usuario de eventos para permitir marcadores, por lo tanto el código que tiene no va a funcionar, porque el usuario no hace clic en el enlace que acaba de crear .

Es necesario algo más parecido a esto:

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

llamada con

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

(no dude en hacer más discreto, sólo quería indicar la exigencia del consumidor-evento)

La manera de conseguir "Añadir a favoritos" trabajo eslabón de Opera 10 es añadir dinámicamente un rel atributo a un enlace

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

El siguiente código funciona en Opera 8.54. No funciona en 9,27 o 9,63 (los únicos dos otras versiones que tengo disponible para la prueba). En 9,27 y 9,63 simplemente se desplaza 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();

sospechoso que eliminan la posibilidad de añadir un marcador / favorito sin que el usuario iniciarla. Desde ya se puede forzar el navegador para navegar a una nueva dirección URL utilizando window.location que probablemente no se considera una vulnerabilidad de denegación de servicio.

La siguiente funciona bien si el usuario hace clic en el enlace:

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

Además, window.external.AddFavorite(url, title); ya no permite que el usuario no debe iniciarse Además favorita en Internet Explorer 8 Beta 2. Sin embargo, si se incluye como el evento onclick de un enlace, que funciona bien:

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

Tanto Firefox 2.0.0.18 y 3.0.4 Actualmente apoyo no iniciado por el usuario Favorito además, pero no me sorprendería verlos lo quitan en una versión futura también.

Creo que es considerado de mala educación y un poco desagradable para intentar forzar un visitante de un sitio web para añadir un favorito / marcador sin ellos al hacer clic en un vínculo o tomar una acción explícita que hacer eso. La sola visita a un sitio web no es suficiente razón para tratar de forzar a los visitantes para añadir un favorito / marcador a él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top