zoukankan      html  css  js  c++  java
  • 兼容多数浏览器的js添加收藏夹脚本

    浏览器不断发展,js的很多脚本需要跟进才能适应,目前多数代码对新版本浏览器(IE11, Firefox 27)无法适用,特关注跟进。

    推荐代码1

    适用浏览器:IE11(windows 8.1), Firefox 37.0.1(windows 8.1),

    不适用浏览器:IE6(windows xp),

    测试代码

    <script type="text/javascript">
    function addFavorite(){
        var bookmarkUrl = "http://baidu.com";
        var bookmarkTitle = "baidu";
    
        if (window.sidebar) { // For Mozilla Firefox Bookmark
            window.sidebar.addPanel(bookmarkTitle, bookmarkUrl,"");
        } else if( window.external || document.all) { // For IE Favorite
            window.external.AddFavorite( bookmarkUrl, bookmarkTitle);
        } else { // for other browsers which does not support
             alert('浏览器不支持,请按 Ctrl+D 手动收藏!');
             return false;
        }
    }
    </script><a href="#" rel="sidebar" onclick="addFavorite()">加入收藏</a>

     解释说明

    1. Firefox 37中废除了window.sidebar.addPanel的功能,如果要使用需要在<a>标签中添加rel="sidebar"才能使用。

    2. IE11/Firefox 37中均存在window.external和document.all,因此需要将专门针对Firefox的判断if (window.sidebar)放在前面判断。

    推荐代码2

    jQuery.fn.addFavorite = function(l, h) {
            return this.click(function() {
                var obj = $(this);
                if($.browser.msie) {
                    window.external.addFavorite(h, l);
                } else if (jQuery.browser.mozilla || jQuery.browser.opera) {
                    obj.attr("rel", "sidebar");
                    obj.attr("title", l);
                    obj.attr("href", h);
                } else {
                    alert("请使用Ctrl+D将本页加入收藏夹!");
                }
            });
        };
        $('#fav').addFavorite('收藏本站',location.href);


    不适用于IE11:需改进。

     Javascript代码获取浏览器的User-Agent信息:navigator.userAgent

    navigator.userAgent
    "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; rv:11.0) like Gecko"

    IE11(windows 8.1)报文请求头: User-Agent: "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko"

    Firefox 37(windows 8.1)报文请求头:
    User-Agent: "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"

    Chrome 41:
    "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36"

    目标

    找到适用于尽可能多浏览器的js代码,封装,开放,共享。

    参考:

    [1] http://stackoverflow.com/questions/5828965/bookmark-on-click-using-jquery

    [2] IE11 用户代理字符串User-Agent(UA)更改--MSDN

    [3] JqueryBookmark--Github

    [4] jquery实现“加入收藏”功能 (不兼容IE11,需改进)

    [5] how to detect IE11 using jquery

  • 相关阅读:
    hdu 4504 dp问题 转化能力不够 对状态的转移也是不够
    BZOJ_2594_[Wc2006]水管局长数据加强版_LCT
    BZOJ_4530_[Bjoi2014]大融合_LCT
    BZOJ_3669_[Noi2014]魔法森林_LCT
    BZOJ_1180_[CROATIAN2009]OTOCI_LCT
    BZOJ_2631_tree_LCT
    BZOJ_3282_Tree_LCT
    BZOJ_2049_[Sdoi2008]Cave 洞穴勘测_LCT
    BZOJ_2622_[2012国家集训队测试]深入虎穴_最短路
    BZOJ_3653_谈笑风生_树状数组
  • 原文地址:https://www.cnblogs.com/xfiver/p/4437233.html
Copyright © 2011-2022 走看看