Add to browser favorites/bookmarks from JavaScript but for all browsers (mine doesn't work in Chrome)?

前端 未结 6 1765
时光取名叫无心
时光取名叫无心 2020-11-28 09:38

Can anyone help, I am using the following for adding a bookmark to IE and Firefox but its not working in Chrome and I don\'t get my error msg saying \"not supported\" either

6条回答
  •  無奈伤痛
    2020-11-28 09:48

    I just tested this script in:

    Win

    • 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
      *  
      * add anchor with void href like this: 
      * bookmark us 
      * 
      */
      
      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
          }
      }();
      

提交回复
热议问题