您的位置: 首页 >日志>前端技术>详细内容

前端技术

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

来源:本站原创 发布时间:2017-09-30 22:37:44 浏览次数: 【字体:
不知道大家有没有发现,在目前所有的标准配套模板所用到的“加入收藏”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进行添加");
    }
}
 
目前采前if (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版本为 trident.x.x;
所以我们重新判断下这两个版本就可以解决目前IE11以上版本浏览器无法加入收藏的问题了。
 
 
 
 
×

用户登录