2010-06-11 10 views
59

¿Hay algún marcador entre navegadores/agregar a favoritos usando JavaScript.Marcador cruz-navegador/agregar a favoritos JavaScript

Se ha buscado una lista, pero ninguna funciona. ¿Puedes sugerir alguna?

+11

Para ser honesto: si un usuario necesita un botón para marcar el sitio, es probable que él/ella no sepa cómo funcionan los marcadores. Los usuarios que normalmente usan marcadores saben que puedes presionar CTRL + D, arrastrar el ícono del pequeño sitio en la barra de marcadores, usar el menú, etc. ¡Encontré que ponernos un "marcador!" el botón parece un poco * retro *, por así decirlo. Simplemente cree un buen sitio web con contenido que empuje al usuario a marcarlo y no necesitará ningún botón. (Solo mi 2 ¢ en este tipo de situaciones, ¡entonces eres tú quien tiene que decidir qué botones poner en tu sitio web!) – nico

+3

¡No estoy poniendo un botón en mi sitio web! Estoy creando un plugin de WordPress. Los usuarios que lo instalan obtienen un botón para marcar la página actual como el complemento "sociable" –

Respuesta

46

jQuery Versión

JavaScript (modificado a partir de un guión que encontré en el lugar de alguien - que no puedo encontrar el sitio de nuevo, así que no puedo dar el crédito persona):

$(document).ready(function() { 
    $("#bookmarkme").click(function() { 
    if (window.sidebar) { // Mozilla Firefox Bookmark 
     window.sidebar.addPanel(location.href,document.title,""); 
    } else if(window.external) { // IE Favorite 
     window.external.AddFavorite(location.href,document.title); } 
    else if(window.opera && window.print) { // Opera Hotlist 
     this.title=document.title; 
     return true; 
    } 
    }); 
}); 

HTML:

<a id="bookmarkme" href="#" rel="sidebar" title="bookmark this page">Bookmark This Page</a> 

IE mostrará un error si no se ejecutan fuera de un servidor (que no permite marcadores de JavaScript a través de JavaScript cuando viewi ng como file://....

Si necesita un script más completo, siempre puede buy one from this page (No, no estoy afiliado a ese sitio ... LOL).

+2

No consideraría esto 'funcional' - vea http: // stackoverflow.com/questions/992844/add-to-browser-favorites-bookmarks-from-javascript-but-for-all-browsers-mine-do/993206 # 993206 para detalles – Christoph

+0

en realidad, la situación de FF ha mejorado algo desde mi respuesta porque de los cambios de la interfaz de usuario, es decir, el usuario ahora puede eliminar la opción para abrir el enlace en la barra lateral al agregar el marcador – Christoph

+0

, lo siento, no funciona para mí. Aparece el mensaje "Error en la página" en IE –

8

Estoy pensando que no. Los marcadores/favoritos deben estar bajo el control del usuario, imagine si algún sitio que visite podría insertarse en sus marcadores con solo algunos javascript.

+5

No estoy pidiendo marcadores automáticos. Un botón al hacer clic debe marcar la página actual. Vi muchas secuencias de comandos pero ninguna compatibilidad con navegadores cruzados –

+1

OK, por lo que está pidiendo algo que le pregunte al usuario si desea agregar su sitio a marcadores. Eso es un poco diferente ... – bwarner

+0

Cmon, el OP claramente NO está preguntando sobre marcadores automáticos. – Phil

3

¿Qué le parece usar una solución de inserción como ShareThis o AddThis? Tienen una funcionalidad similar, por lo que es bastante posible que ya hayan resuelto el problema.

El código de AddThis tiene una gran horquilla de navegador if/else para guardar favoritos, sin embargo, la mayoría de las ramas terminan en pedir al usuario que agregue manualmente el favorito, así que estoy pensando que no existe una implementación de JavaScript tan pura.

De lo contrario, si sólo se necesita para apoyar el IE y Firefox, que tiene de window.externalAddFavorite() IE y Mozilla de window.sidebar.addPanel().

8
function bookmark(title, url) { 
    if(document.all) { // ie 
     window.external.AddFavorite(url, title); 
    } 
    else if(window.sidebar) { // firefox 
     window.sidebar.addPanel(title, url, ""); 
    } 
    else if(window.opera && window.print) { // opera 
     var elem = document.createElement('a'); 
     elem.setAttribute('href',url); 
     elem.setAttribute('title',title); 
     elem.setAttribute('rel','sidebar'); 
     elem.click(); // this.title=document.title; 
    } 
} 

que utilizan este & funciona muy bien en IE, FF, Netscape. ¡Chrome, Opera y safari no lo admiten!

Cuestiones relacionadas