修复IE11下“加入收藏失败”的解决办法

作者:动易软件 来源:本站原创 点击数: 发布时间:2019年03月28日
不知道大家有没有发现,在目前所有的标准配套模板所用到的“加入收藏”JS代码,已经不兼容IE11以上版本了
 目前 所用到的“加入收藏”JS代码以下
 
// 加入收藏代码 Start -->
function AddFavorite(sURL, sTitle) {
    if (document.all) {
        try {
            window.external.addFavorite(sURL, sTitle);
        } catch (e) {
            alert("加入收藏失败,请使用Ctrl+D进行添加");
        }
 
    } else if (window.sidebar) {
        window.sidebar.addPanel(sTitle, sURL, "");
    } else {
        alert("加入收藏失败,请使用Ctrl+D进行添加");
    }
}
 
目前采前i f (document.all) 的方法判断IE11以上浏览器已不适用
所以IE11以上浏览器会直接弹出失败对话框
但,   window.external.addFavorite(sURL, sTitle);,此代码依然是适用的
所以我们只需要改变判断代码就可以支持IE11以上版本
 
修改后代码如下
 
// 加入收藏代码 Start -->
function AddFavorite(sURL, sTitle) {
        try {
var ctrl=navigator.userAgent;
ctrl=ctrl.toLocaleLowerCase();
if(document.all||ctrl.match(/msie/)!=null||ctrl.match(/trident/)!=null){   //IE 浏览器
 window.external.addFavorite(sURL, sTitle);
}else{
   if(window.sidebar){   //firfox等浏览器
window.sidebar.addPanel(sTitle, sURL, "");
}else{
alert("加入收藏失败,请使用Ctrl+D进行添加")
}
}
        } catch (e) {
            alert("加入收藏失败,请使用Ctrl+D进行添加");
        }
}
 
IE11以前的 userAgent版本为  msie.x.x;
IE11以上的 userAgent版本为 t rident .x.x;
所以我们重新判断下这两个版本就可以解决目前IE11以上版本浏览器无法加入收藏的问题了。