# 兼容的加入收藏

- Link: https://yjyj.net/css/1562.html
- Published: 2010-08-21T19:18:45+08:00
- Author: 小 虾

⚡ 生猛大蝦编辑部 · 30 秒核心看点

 * 用 JavaScript 判断浏览器能力，再分别调用收藏相关接口。
 * IE、Firefox、Opera 的处理方式不同，核心是做兼容分支。
 * 实操上可直接把链接做成“加入收藏”，但现代浏览器支持有限。

<script type="text/javascript"> 
    function addBookmark(title,url) {         if(
document.all ) {             window.external.AddFavorite( url, title);         }
else if (window.sidebar) {             window.sidebar.addPanel(title, url,"");  }
else if( window.opera && window.print ) {             return true;         }    }
</script> <a href="javascript:addBookmark(‘站点名称,’https://yjyj.net/’);">加入收藏
</a>

❓ 延伸问答与排错指南（FAQ）

这段加入收藏代码适合哪些浏览器？

原文代码按浏览器特性分支处理：IE 走 external.AddFavorite，Firefox 走 sidebar.addPanel，
Opera 则返回 true。它体现的是早期前端兼容思路，适合理解老项目里的收藏功能写法。

为什么点击加入收藏有时没反应？

因为不同浏览器对“加入收藏”接口支持不一致，甚至很多现代浏览器已不再开放这类脚本调
用。遇到没反应时，通常不是代码写错，而是浏览器本身限制了自动加入收藏。

现在还值得在网站里做加入收藏吗？

如果是老站或历史项目，可以保留兼容写法；但从实际体验看，现代浏览器对脚本直接收藏
的支持很弱。更稳妥的做法是引导用户使用浏览器自带收藏功能，而不是依赖脚本强制触发。

📚 【[前端杂烩](https://yjyj.net/category/css)】专栏延伸阅读与热门精选（[全站文章归档](https://yjyj.net/archive)）：

 * [关于chrome下css3给宋体设置阴影的问题](https://yjyj.net/css/1560.html)
 * [div透明](https://yjyj.net/css/1165.html)
 * [jQuery返回顶部的js实现](https://yjyj.net/css/1680.html)
 * [css写一个进度条](https://yjyj.net/css/2864.html)
 * 热门必读[Shopify Sessions 数据维度表](https://yjyj.net/learn/shopify/7764.html)
 * 热门必读[解决: windows 环境下 无法将“git”项识别为 cmdlet、函数、脚本文件或可运行程序的名称](https://yjyj.net/learn/7776.html)

## Comments

### By: 此段

- Link: https://yjyj.net/css/1562.html/comment-page-1#comment-9605
- Published: 2011-07-22T14:04:24+08:00

此段太有虾米味了
