2008-09-20 15 views
7

estoy usando el siguiente código JavaScript marcadores:Firefox Javascript problema

<script language="JavaScript1.2" type="text/javascript"> 
function CreateBookmarkLink(title, url) { 
    if (window.sidebar) { 
     window.sidebar.addPanel(title, url,""); 
    } else if(window.external) { 
     window.external.AddFavorite(url, title); } 
    else if(window.opera && window.print) { 
     return true; } 
} 
</script> 

Esto creará un marcador para Firefox e IE. Pero el enlace para Firefox se mostrará en el panel lateral del navegador, en lugar de mostrarse en la pantalla principal. Personalmente encuentro esto muy molesto y estoy buscando una mejor solución. Por supuesto, es posible editar el marcador manualmente para que no aparezca en el panel lateral, pero eso requiere pasos adicionales. Solo quiero que las personas puedan marcar una página (que tiene mucha información GET en la URL que se usa para crear un esquema determinado) de la manera más fácil.

Me temo que podría no ser posible que Firefox presente la página en la pantalla principal (ya que buscar en Google este tema resultó en nada que valiera la pena usar), pero podría haberme perdido algo. Si alguien tiene una idea, si esto es posible, o si hay una solución alternativa, me encantaría saber al respecto.

+0

Por cierto, 'window.opera && window.print' parece apuntar a Opera> v6.
Y el atributo 'language' está en desuso y no debe declararse: http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.2.2 –

Respuesta

4

Creo que esa es la única solución para Firefox ... Tengo una mejor función para esa acción, funciona incluso para Opera y muestra un mensaje para otros navegadores "no compatibles".

<script type="text/javascript"> 
function addBookmark(url,name){ 
    if(window.sidebar && window.sidebar.addPanel) { 
     window.sidebar.addPanel(name,url,''); //obsolete from FF 23. 
} else if(window.opera && window.print) { 
     var e=document.createElement('a'); 
     e.setAttribute('href',url); 
     e.setAttribute('title',name); 
     e.setAttribute('rel','sidebar'); 
     e.click(); 
} else if(window.external) { 
     try { 
      window.external.AddFavorite(url,name); 
     } 
     catch(e){} 
} 
else 
     alert("To add our website to your bookmarks use CTRL+D on Windows and Linux and Command+D on the Mac."); 
} 
</script> 
+0

estás en lo correcto. no hay forma de agregar una página a los marcadores en Firefox sin que se abra en un panel lateral. –

+0

Este código en Opera solo redirige al usuario a la página del enlace. –

+0

este código se romperá si tiene un elemento con id = "sidebar" como se menciona aquí: http://stackoverflow.com/questions/17747578/uncaught-typeerror-object-htmldivelement-has-no-method-addpanel – reikyoushin

0

usted tiene un caso especial para

if (window.sidebar) 

y luego una rama de 'otra cosa' - ¿no la tierra Firefox en la primera rama y por tanto sólo añadir el panel?

+0

Lo que quiero decir es - en su lugar de escribir 'else if (window.external)' hacer un nuevo si es así también lo consigues como un marcador –

0

Hojou,

Parece que es la única manera de añadir un marcador para Firefox. Entonces, FF necesita aterrizar en la primera sucursal para que todo suceda. Busqué en Google un poco más, pero realmente entiendo la idea de que esto es imposible de abordar correctamente en FF ...

7

Para Firefox no es necesario configurar ningún JavaScript para el marcador una página por script, solo una etiqueta de ancla con título y rel = "barra lateral" puede hacer esta funcionalidad

<a href="http://www.google.com" title="Google" rel="sidebar">Bookmark This Page</a> 

he probado en FF9 y su funcionamiento muy bien.

Al hacer clic en el enlace, Firefox se abrirá un cuadro de diálogo Nuevo marcador y si usted no desea cargar este marcador en la barra lateral a continuación, elimina la marca de Cargar este marcador en la barra lateral del cuadro de diálogo.

+0

+1 gracias, esto me salvó ... pero se puede encontrar una forma más general aquí: http://stackoverflow.com/questions/17747578/uncaught-typeerror-object-htmldivelement-has-no-method-addpanel – reikyoushin

Cuestiones relacionadas