小書籤
小書籤(英語:bookmarklet),又叫書籤小程序,是一種小型的程序,以網址(URL)的形式被存為瀏覽器中的書籤,也可以是網頁上的一個鏈接。小書籤的英文名,Bookmarklet是由Bookmark和Applet組合而來。無論小書籤以什麼形式儲存,它們都是用來給瀏覽器或是網頁添加一些特定功能的。點擊時,小書籤會執行這些操作,包括執行搜索,導出數據等等。小書籤一般是JavaScript程式。
歷史
bookmarklets.com的Steve Kangas發明了bookmarklet這個詞[1],之後他在Netscape的JavaScript指南中的某些內容上產生了自己的創意[2]。最早的一個詞語是favelet在2001年9月6日被坦塔克·塞里克所使用。而在Netscape發明JavaScript的布蘭登·艾克這樣說明小書籤的來歷:
“ | 這是一個特意設計的特性:我在1995年發明JavaScript的時候發明了javascript: 這類URL,並打算使得javascript: URLs用法和其他URL一樣,包括收錄入收藏夾。
我特地把"JavaScript:" URL設計得可以在運行時產生一個新文檔,例如 |
” |
——布蘭登·艾克,寄給西門·威利森的郵件[3] |
概念
瀏覽器使用隸屬於<a>
標籤的href
的URI標籤來存儲書籤。瀏覽器用URI前綴,例如http:
、file:
、或是ftp:
來確定協議以及請求剩餘字符串的格式。
瀏覽器也能像執行其它前綴一樣執行javascript:
。在內部處理時,當瀏覽器檢查到協議為JavaScript,就將後面的字符串作為JavaScript腳本來執行,並用執行結果產生一個新頁面。
腳本可以在當前頁面執行,這樣就能引用和修改當前頁面的元素。如果腳本返回了undenfined類型(而不是字符串等),瀏覽器就不會載入新頁面而是直接在當前頁面內容上運行Javascript腳本。可以用這個方法在不刷新頁面的情形下修改頁面內容,比如字體/顏色等。
以下的匿名函數可以用來強制腳本返回undenfined類型:
javascript:(function(){
/* Statements returning a non-undefined type, e.g. assignments */
})();
用途
小書籤的存儲與使用和普通書籤一致。如同它們的名字,小書籤是一種十分易用的工具。例如:
- 修改網頁的外觀(修改字體大小,背景顏色等)
- 從網頁中提取某些數據(鏈接,圖片,文本等)
- 將當前頁面提交到博客平台(例如Posterous、Tumblr),社會化網站(例如Facebook、Twitter),縮短鏈接服務(bit.ly、su.pr等)或是書籤服務(Delicious)
- 快速調用搜索引擎搜索當前頁面選中的文字
- 將網頁提交到鏈接檢測服務,或是在線翻譯服務
- 設置某些頁面本身不能修改的功能
安裝
小書籤一般是通過創建一個新書籤並將代碼粘貼入URL欄而實現的。現代瀏覽器中也可把鏈接形式的小書籤直接拖拽到書籤欄中,此後小書籤就可以像打開普通書籤一樣正常運作了。
例子
以下示例小書籤可以在瀏覽器窗口中以維基為搜索引擎搜索選定的文字。正常情況下以下的小書籤可以被安裝在[4]瀏覽器書籤欄中。選中文字後即可點擊這個小書籤以執行搜索。
javascript:function se (d) {return d.selection ? d.selection.createRange().text : d.getSelection()} s = se (document); for(i=0; i<frames.length && !s; i++)s = se(frames[i].document); if(!s || s=='')s = prompt('輸入維基百科搜索關鍵字',''); open('http://zh.wikipedia.org' + (s ? '/w/index.php?title=Special:Search&search=' + encodeURIComponent(s): '')).focus();
參見
參考文獻
- ^ 域名bookmarklets.com (頁面存檔備份,存於網際網路檔案館)註冊於1998年4月9日
- ^ Activating JavaScript Commands From the Personal Toolbar. What's New in JavaScript 1.2. Netscape Communications Corporation. 1997 [2018-06-10]. (原始內容存檔於2002-06-11).
- ^ Willison, Simon. Email from Brendan Eich. SitePoint. April 10, 2004 [2010-06-15]. (原始內容存檔於2009-07-21).
- ^ Mozilla Firefox, Opera, Safari,和Chrome上運行且不支持IE.原始來源:Alex Boldt (頁面存檔備份,存於網際網路檔案館)
外部連結
- Bookmarklets - Tool Categories. Bookmarklets.com. [2010-06-15]. (原始內容存檔於2021-02-14).
- Bookmarklet –小书签,实用浏览器小工具补完. 小眾軟件. [2010-06-15]. (原始內容存檔於2021-01-18).
- Bookmarklet编写指南. 阮一峰的網絡日誌. [2011-06-13]. (原始內容存檔於2021-01-18).
- 各种骚操作,中文网最全 Bookmarklet 小书签. 奔跑中的奶酪. 網上衝浪指南. 2022-01-05. (原始內容存檔於2023-08-21) (中文).