修复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以上版本浏览器无法加入收藏的问题了。