添加到收藏夹代码(兼容几乎所有的浏览器)


Posted in Javascript onJanuary 09, 2007

兼容IE5+/Win, Firefox, Netscape 6+, Opera 7+, Safari, Konqueror 3, IE5/Mac, 还有 iCab 3.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
  <head> 
    <title> addbookmark cross all browser - http://www.never-online.net </title> 
    <meta http-equiv="ImageToolbar" content="no" /> 
    <meta name="author" content="never-online, BlueDestiny"/> 
    <meta name="keywords" content="never modules, Mozilla CSS, C#, .net, Reference, BlueDestiny, never-online"/> 
    <meta name="description" content="addbookmark cross all browser, javascript reference, c sharp artilces"/> 
    <meta name="creator.name" content="never-online, BlueDestiny" /> 
    <style type="text/css" media="all" title="Default"> 
      body { 
        color: windowtext;  
        background: appworkspace; 
        font-family: Arial; 
        font-size:9pt; 
        line-height:150%; 
      } 
      h1, h2, h3, h4 { 
        color:#fff; 
        font-family: "Trebuchet MS",Verdana, Arial, Helvetica, sans-serif; 
      } 
      a { 
        color:#fff; 
      } 
      div#header { 
        text-align:center; 
        color:#eee; 
      } 
      div#header a { 
        color:#fff; 
        font-weight:bold; 
      } 
      div#footer { 
        margin-top:10px; 
        text-align:center; 
        color:#eee; 
        font-size:8pt; 
      } 
      div#operator { 
        margin:20px 0 20px 0; 
      } 
      div#operator ul, div#operator li { 
        margin:0; 
        padding:0; 
      } 
      div#operator li { 
        display:inline; 
        list-style-type:none; 
        margin-right:5px; 
        margin-left:5px; 
        border:1px solid #000; 
        padding:5px; 
        color:#000; 
        background-color:#eee; 
        cursor:hand; 
        cursor:pointer; 
      } 
      hr { 
        margin:10px 0 10px 0; 
      } 
      div.wrapper { 
        text-align:center; 
      } 
      div.content { 
        border:1px solid #333; 
        background-color:buttonface; 
        color:#000; 
        padding:10px; 
        margin:10px 0 10px 0; 
        font-size:10pt; 
        line-height:150%; 
        text-align:left; 
        width:80%; 
        margin-left: auto; 
        margin-right: auto; 
        -moz-box-sizing:border-box; 
      } 
      div.content a { 
        color:#000; 
      } 
      div.content h4 { 
        color:#000; 
        margin-left:10px; 
        text-align:left; 
      } 
    </style> 
    <script type="text/javascript"> 
    //<![CDATA[ 
      /*  
      *  Copyright 2006 Dynamic Site Solutions. 
      *  Free use of this script is permitted for non-commercial applications, 
      *  subject to the requirement that this comment block be kept and not be 
      *  altered.  The data and executable parts of the script may be changed 
      *  as needed.  Dynamic Site Solutions makes no warranty regarding fitness 
      *  of use or correct function of the script.  Terms for use of this script 
      *  in commercial applications may be negotiated; for this, or for other 
      *  questions, contact "license-info@dynamicsitesolutions.com". 
      * 
      *  Script by: Dynamic Site Solutions -- http://www.dynamicsitesolutions.com/ 
      *  Last Updated: 2006-08-03 
      */       //IE5+/Win, Firefox, Netscape 6+, Opera 7+, Safari, Konqueror 3, IE5/Mac, iCab 3 
      var addBookmarkObj = { 
        init:function() { 
          if(!document.getElementById || !document.createTextNode) return; 
          var cont=document.getElementById('addBookmarkContainer'); 
          if(!cont) return; 
          var a=document.createElement('a'); 
          a.href=location.href; 
          if(!window.opera) { // this doesn't work in Opera 7+ if the link has an  
            // onclick handler, so we only add it if the browser isn't Opera. 
            a.onclick=function() { 
              addBookmarkObj.exec(this.href,this.title); 
              return false; 
            } 
          } 
          a.rel='sidebar'; // this makes it work in Firefox and Opera 7+ 
          a.title=document.title; 
          a=cont.appendChild(a); 
          a.appendChild(document.createTextNode('Bookmark This Page')); 
        }, 
        exec:function(url, title) { 
          var isKonq=(isLikelyKonqueror3 && isLikelyKonqueror3()); 
          var isMac=(navigator.userAgent.toLowerCase().indexOf('mac')!=-1); 
          var buttonStr = isMac?'Command/Cmd':'CTRL'; 
          if(window.external && (!document.createTextNode || 
            (typeof(window.external.AddFavorite)=='unknown'))) { 
              // IE4/Win generates an error when you 
              // execute "typeof(window.external.AddFavorite)" 
              // In IE7 the page must be from web server, not directly from a local  
              // file system, otherwise, you get a permission denied error. 
              window.external.AddFavorite(url, title); // IE/Win 
          } else if(isKonq) { 
            alert('You need to press CTRL + B to bookmark our site.'); 
          } else if((window.sidebar && 
             (navigator.userAgent.toLowerCase().indexOf('firefox')!=-1)) || 
             (window.opera && opera.buildNumber && !isNaN(opera.buildNumber()))) { 
               void(0); // do nothing here (Firefox or Opera 7+) 
          } else if(window.opera) { // older Opera 
            alert('You need to press '+buttonStr+' + T to bookmark our site.'); 
          } else if(window.home) { // Netscape, iCab 
            alert('You need to press '+buttonStr+' + D to bookmark our site.'); 
          } else if(!window.print || isMac) { // IE5/Mac and Safari 1.0 
            alert('You need to press Command/Cmd + D to bookmark our site.');     
          } else { 
            alert('In order to bookmark this site you need to do so manually '+ 
              'through your browser.'); 
          } 
        } 
      } 
      function isLikelyKonqueror3() { 
        if(!document.getElementById) return false; 
        if(document.defaultCharset || window.opera || !window.print) return false; 
        if(window.home) return false; /* Konqueror doesn't support this but Firefox,  
          which has silent support for document.all when in Quirks Mode does */ 
        if(document.all) return true; // Konqueror versions before 3.4 
        var likely = 1; 
        // testing for silent document.all support; try-catch used to keep it from 
        // generating errors in other browsers. 
        // try-catch causes errors in IE4 so we use the eval() to hide it. 
        // try { 
        //   var str=document.all[0].tagName; 
        // } catch(err) { likely=0; } 
        eval("try{var str=document.all[0].tagName;}catch(err){likely=0;}"); 
        return likely; 
      } 
      function dss_addEvent(el,etype,fn) { 
        if(el.addEventListener && (!window.opera || opera.version) && 
        (etype!='load')) { 
          el.addEventListener(etype,fn,false); 
        } else if(el.attachEvent) { 
          el.attachEvent('on'+etype,fn); 
        } else { 
          if(typeof(fn) != "function") return; 
          var tempFunc = el['on'+etype]; 
          el['on'+etype] = function() { 
            if(typeof(tempFunc) == "function") tempFunc(); 
            fn(); 
          } 
        } 
      } 
      dss_addEvent(window,'load',addBookmarkObj.init); 
    //]]> 
    </script> 
  </head> 
  <body id="www.never-online.net"> 
    <div id="header"><h1> cross-browser addBookmark </h1>by www.dynamicsitesolutions.com<hr/></div> 
    <div class="wrapper"> 
      <div class="content"> 
      <h4> demonstration </h4> 
      <div id="addBookmarkContainer"></div> 
      </div>     
    </div> 
    <div id="footer">collected by <a href="http://www.never-online.net">http://www.never-online.net</a></div> 
  </body> 
</html>
Javascript 相关文章推荐
IE6下出现JavaScript未结束的字符串常量错误的解决方法
Nov 21 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
May 17 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
Javascript学习笔记之 函数篇(一) : 函数声明和函数表达式
Jun 24 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
纯js实现无限空间大小的本地存储
Jun 18 Javascript
JavaScript中this详解
Sep 01 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
Jul 01 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
Vue-Router实现组件间跳转的三种方法
Nov 07 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 #Javascript
一个对于js this关键字的问题
Jan 09 #Javascript
JS控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 #Javascript
根据分辩率调用不同的CSS.
Jan 08 #Javascript
如何用javascript判断录入的日期是否合法
Jan 08 #Javascript
[IE&amp;FireFox兼容]JS对select操作
Jan 07 #Javascript
javascript中的对象和数组的应用技巧
Jan 07 #Javascript
You might like
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
php session劫持和防范的方法
2013/11/12 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php和nginx交互实例讲解
2019/09/24 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
Javascript中的Callback方法浅析
2015/03/15 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
python调用百度地图WEB服务API获取地点对应坐标值
2019/01/16 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
python中pyplot基础图标函数整理
2020/11/10 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
如何在Shell脚本中使用函数
2015/09/06 面试题
优秀信贷员先进事迹
2014/01/31 职场文书
汽车维修专业自荐书
2014/05/26 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
党小组鉴定意见
2015/06/02 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang