本文要點:
1) Window.sidebar是個什么東東?
2) 采用何種規范?
3) 提供哪些方法?
4) 各自的用途局限?
5) 哪些360的產品用到了?
6) 兼容主流瀏覽器的【加入收藏】實例
一、Window.sidebar簡介
是一種文檔對象模型,返回側邊欄的對象,其中包含瀏覽器加載項注冊的幾種方法
例子:window.sidebar.addPanel(”360安全中心”,http://www.360.cn/,””);
注:第三個空參數是必需的!
二、規范
Mozilla的規范,不屬於任何標准來衡量
三、 Window.sidebar對象方法
側邊欄返回的對象有以下幾種方法:
方法 |
描述 |
addPanel(title,contentURL,customizeURL) |
添加了一個側邊欄面板.創建一個Firefox側邊欄在Firefox 2和更高版本的側邊欄的詳細信息. |
addPersistentPanel(title,contentURL,customizeURL) |
添加側邊欄面板,這是能夠在后台工作。SeaMonkey的或Firefox 1.x的這唯一的作品;Firefox 2和以后只會做 |
addSearchEngine(engineURL,iconURL,suggestedTitle,suggestedCategory) |
安裝一個搜索引擎。從網頁中添加搜索引擎的細節. |
addMicrosummaryGenerator(generatorURL)需要的Gecko 1.8.1 |
安裝一個microsummary發電機. |
四、各方法的用途局限
1. 不是所有的瀏覽器都支持window.sidebar
如:ie使用:window.external.addFavorite()
Firefox使用:window.sidebar.addPanel()
其他瀏覽器沒有此功能
2. 使用情況來說:addPanel()使用的較多,其他方法較少
3. 其他主流瀏覽器(chrome、opera、safari)不能使用該對象,不過可以提醒用戶使用ctrl+d的方法手動添加
五、運用該對象的360產品
1) 360游戲導航
2) 360搞笑、笑話
六、兼容主流瀏覽器的【加入收藏】實例
兼容Firefox、IE、chrome、safari、opera瀏覽器的方法
既然Firefox提供了兩種方式,那么我們兼容Firefox、IE、chrome、safari、opera瀏覽器也可以用兩種方法了。
第一種方法:
這里用了一個變通的方式來解決這個問題,代碼比較清晰。這個是最好的方式了!

<script type="text/javascript"> function addFavorite(){ var title = document.title; var URL = document.URL; // alert(title+" ==> "+URL); try { window.external.addFavorite(URL, title); //ie } catch(e) { try { window.sidebar.addPanel(title, URL, ""); //firefox } catch(e) { alert("加入收藏失敗,請使用Ctrl+D進行添加"); //chrome opera safari } } } </script><a href="#" onclick="addfavorite()">加入收藏</a>
第二種方法:
此方法必須手動寫入href 和 title,例子如下:

<a href="http://www.360.cn"
onclick="try{window.external.addFavorite(this.href,this.title);}catch(e){alert('加入收藏失敗,請使用Ctrl+D進行添加');} return false;" title="360安全中心" rel="sidebar">加入收藏</a>