marcadores los internet guardan favoritos exportar donde configuracion chrome javascript firefox google-chrome cross-browser bookmarks

javascript - los - exportar marcadores chrome android



Agregar a favoritos/marcadores del navegador desde JavaScript pero para todos los navegadores(el mío no funciona en Chrome)? (6)

Acabo de probar este script en:

Ganar

  • IE 6.0, IE 7.0, IE 8.0
  • Firefox 2.0, Firefox 3.6.3
  • Safari 3.1.2, Safari 3.2.3
  • Opera 9.00
  • Google Chrome 8.0

Mac

  • Firefox 3.6.13
  • Safari 5.0.1
  • Opera 11.0
  • Google Chrome 8.0

    /* * Copyright 2010 by GlamThumbs Team. * * How To Use The Script: * add to your page this code between inside head tags * <script type="text/javascript" src="ATBookmarkApp.js"></script> * add anchor with void href like this: * <a href="javascript:void(0)" onClick="return BookmarkApp.addBookmark(this)">bookmark us</a> * */ ATBookmarkApp = function () { var isIEmac = false; /*@cc_on @if(@_jscript&&!(@_win32||@_win16)&& (@_jscript_version<5.5)) isIEmac=true; @end @*/ var isMSIE = (-[1,]) ? false : true; var cjTitle = document.title; var cjHref = location.href; function hotKeys() { var ua = navigator.userAgent.toLowerCase(); var str = ''''; var isWebkit = (ua.indexOf(''webkit'') != - 1); var isMac = (ua.indexOf(''mac'') != - 1); if (ua.indexOf(''konqueror'') != - 1) { str = ''CTRL + B''; // Konqueror } else if (window.home || isWebkit || isIEmac || isMac) { str = (isMac ? ''Command/Cmd'' : ''CTRL'') + '' + D''; // Netscape, Safari, iCab, IE5/Mac } return ((str) ? ''Press '' + str + '' to bookmark this page.'' : str); } function isIE8() { var rv = -1; if (navigator.appName == ''Microsoft Internet Explorer'') { var ua = navigator.userAgent; var re = new RegExp("MSIE ([0-9]{1,}[/.0-9]{0,})"); if (re.exec(ua) != null) { rv = parseFloat(RegExp.$1); } } if (rv > - 1) { if (rv >= 8.0) { return true; } } return false; } function addBookmark(a) { try { if (typeof a == "object" && a.tagName.toLowerCase() == "a") { a.style.cursor = ''pointer''; if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function")) { window.sidebar.addPanel(cjTitle, cjHref, ""); // Gecko return false; } else if (isMSIE && typeof window.external == "object") { if (isIE8()) { window.external.AddToFavoritesBar(cjHref, cjTitle); // IE 8 } else { window.external.AddFavorite(cjHref, cjTitle); // IE <=7 } return false; } else if (window.opera) { a.href = cjHref; a.title = cjTitle; a.rel = ''sidebar''; // Opera 7+ return true; } else { alert(hotKeys()); } } else { throw "Error occured./r/nNote, only A tagname is allowed!"; } } catch (err) { alert(err); } } return { addBookmark : addBookmark } }();

¿Alguien puede ayudar, estoy usando lo siguiente para agregar un marcador a IE y Firefox pero no funciona en Chrome y no recibo mi mensaje de error diciendo "no compatible" tampoco ..

Alguien sabe de una buena secuencia de comandos para admitir TODOS los navegadores o al menos para volver y decirme que no es compatible, tengo acceso a jQuery, tal vez hay alguna forma de detectar el navegador

Actualmente estoy usando esto y funciona para IE y Firefox pero no para Chrome

if (window.sidebar) { // Mozilla Firefox window.sidebar.addPanel(name, url, ""); } else if (window.external) { // IE window.external.AddFavorite(url, name); } else if (window.opera && window.print) { window.external.AddFavorite(url, name); } else { alert(''not supported''); }


Después de descubrir, ¡como Edison! - De varias maneras, esto no funciona, finalmente encontré esta página que dice que agregar marcadores a través de JS está explícitamente deshabilitado en Chrome. Lamentablemente, no explica por qué.

Actualización: Otro usuario de SO me pidió que ampliara esta respuesta ...

Mis enlaces y botones para esta función tienen una class="addbookmark" asociada a ellos. Cuando el agente de usuario es Chrome, uso jQuery para deshabilitar los enlaces y explicar por qué:

<script type="text/javascript" src="/scripts/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="/scripts/bookmark.js"></script> <script> title=''A Label for this Bookmark, ie title of this page''; // for example, not really generated this way... $jQuery(document).ready(function(){ // chrome does not permit addToFavorites() function by design if (navigator.userAgent.toLowerCase().indexOf(''chrome'') > -1) { $(''.addbookmark'').attr({ title: ''This function is not available in Google Chrome. Click the star symbol at the end of the address-bar or hit Ctrl-D to create a bookmark.'', href: ''javascript:return false'' }) .css({opacity: .25}); // dim the button/link } }); </script>

Y luego en otro lugar en la página:

<td rowspan="2" class="noprint" style="width:24px;"> <a class="addbookmark" title="Save a Bookmark for this page" href="javascript:addToFavorites(location.href,title)"> <img style="width:24px; height:24px; padding-top:2px;" src="/images/bookmark.gif"></a> </td>

... que de ninguna manera es perfecto, pero parece que las opciones de uno son bastante limitadas.

La versión de jQuery no es importante, y depende de usted si desea una copia local o acceso directo a la versión de google . bookmark.js es exactamente igual al código de OP:

$ cat /scripts/bookmark.js /* simple cross-browser script for adding a bookmark source: http://.com/questions/992844/add-to-browser-favourites-bookmarks-from-javascript-but-for-all-browsers-mine-do */ function addToFavorites(url, name) { if (window.sidebar) { // Mozilla Firefox window.sidebar.addPanel(name, url, ""); } else if (window.external) { // IE window.external.AddFavorite(url, name); } else if (window.opera && window.print) { window.external.AddFavorite(url, name); } else { alert("Sorry! Your browser doesn''t appear to support this function."); } }

Espero que sea útil.


Lo sentimos, pero no hay una forma de navegación cruzada para hacer esto. Su ejemplo de FF también está roto: no creará un marcador normal, sino un marcador establecido para abrirse en la barra lateral. Tendría que usar el servicio de marcador para crear un marcador real, pero esto fallará debido a restricciones de seguridad.


Mi enfoque con la ayuda de jQuery.
Probado en IE 6-8, Fx 1-25, Opera 7-14. Se degrada graciosamente en Chrome, Saf.

CSS:

.no-js .link-bookmark { display: none; }

JS:

/* ... Bookmark current page ... */ var $favLink = $(''.link-bookmark''); if ( window.sidebar || ''AddFavorite'' in window.external || window.opera ) { $favLink.show(); } // add a ''rel'' attrib if Op 7+ && Fx >= 23 if ( window.opera || window.sidebar ) { var $favLinkAttrRel = $favLink.attr(''rel''); if ( typeof $favLinkAttrRel !== "undefined" && $favLinkAttrRel !== false ) { // don''t overwrite the rel attr if already set $favLink.attr(''rel'', ''sidebar''); } } $favLink.click(function( event ) { //event.preventDefault(); // prevent the anchor tag from sending the user off to the link var url = this.href; var $title = $(''title'').text(); // IE Favorite if ( ''AddFavorite'' in window.external ) { event.preventDefault(); window.external.AddFavorite(url, $title); } // Fx <23 Bookmark, ''addPanel'' not available from v23 on any more. else if ( ''addPanel'' in window.sidebar ) { event.preventDefault(); window.sidebar.addPanel($title, url, ''''); } // Op 7+ && Fx >= 23 else if ( window.opera || window.sidebar ) { $favLink.attr(''title'', $title); return true; // do nothing - the rel="sidebar" should do the trick } // for Saf, Konq etc - browsers who do not support bookmarking scripts else { event.preventDefault(); alert(''Your browser doesn/'t support the bookmark functionality,'' + ''please add this page to your bookmarks manually.''); } });


No pude hacer funcionar el ejemplo anterior. De todos modos, la respuesta a la pregunta original ''no está funcionando en CHROME y no aparece mi mensaje de error diciendo "no compatible" tampoco ...'' se debe a la línea

else if (window.external) { // IE

Chrome en realidad pasa esta prueba y luego obvio no puede agregar un marcador. Cambié esta línea a

else if(window.external && !window.chrome) // IE

y ahora recibes el mensaje "no compatible". De hecho, eliminé este mensaje y llamé a la función hotKeys () para obtener una alerta más significativa. Tuve que hacer algunos cambios para que funcione

function showHotKeys() { var ua = navigator.userAgent.toLowerCase(); var str = ''''; var isWebkit = (ua.indexOf(''webkit'') != - 1); var isMac = (ua.indexOf(''mac'') != - 1); if (ua.indexOf(''konqueror'') != - 1) { str = ''CTRL + B''; // Konqueror } else if (window.home || isWebkit || isMac) { str = (isMac ? ''Command/Cmd'' : ''CTRL'') + '' + D''; // Netscape, Safari, iCab } return ((str) ? ''Press '' + str + '' to bookmark this page.'' : str); }


Siempre puede alertar al cliente para que presione ctr + D. Esto es universal en todos los navegadores. Es hortera, pero igual de útil para el cliente.