小書籤

包含JavaScript命令書籤,可向瀏覽器添加新功能

小書籤(英語:bookmarklet),又叫書籤小程式,是一種小型的程式,以網址(URL)的形式被存為瀏覽器中的書籤,也可以是網頁上的一個連結。小書籤的英文名,Bookmarklet是由BookmarkApplet組合而來。無論小書籤以什麼形式儲存,它們都是用來給瀏覽器或是網頁添加一些特定功能的。點選時,小書籤會執行這些操作,包括執行搜尋,匯出數據等等。小書籤一般是JavaScript程式

歷史

bookmarklets.com的Steve Kangas發明了bookmarklet這個詞[1],之後他在Netscape的JavaScript指南中的某些內容上產生了自己的創意[2]。最早的一個詞語是favelet在2001年9月6日被坦塔克·塞里克所使用。而在Netscape發明JavaScript布蘭登·艾克這樣說明小書籤的來歷:

概念

瀏覽器使用隸屬於<a>標籤的hrefURI標籤來儲存書籤。瀏覽器用URI字首,例如http:file:、或是ftp:來確定協定以及請求剩餘字串的格式。

瀏覽器也能像執行其它字首一樣執行javascript:。在內部處理時,當瀏覽器檢查到協定為JavaScript,就將後面的字串作為JavaScript指令碼來執行,並用執行結果產生一個新頁面。

指令碼可以在當前頁面執行,這樣就能參照和修改當前頁面的元素。如果指令碼返回了undenfined類型(而不是字串等),瀏覽器就不會載入新頁面而是直接在當前頁面內容上執行Javascript指令碼。可以用這個方法在不重新整理頁面的情形下修改頁面內容,比如字型/顏色等。

以下的匿名函數可以用來強制指令碼返回undenfined類型:

javascript:(function(){
/* Statements returning a non-undefined type, e.g. assignments */
})();

用途

小書籤的儲存與使用和普通書籤一致。如同它們的名字,小書籤是一種十分易用的工具。例如:

  • 修改網頁的外觀(修改字型大小,背景顏色等)
  • 從網頁中提取某些數據(連結,圖片,文字等)
  • 將當前頁面提交到網誌平台(例如PosterousTumblr),社群網站(例如FacebookTwitter),短網址服務(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();

參見

參考文獻

  1. ^ 域名bookmarklets.com頁面存檔備份,存於互聯網檔案館)註冊於1998年4月9日
  2. ^ Activating JavaScript Commands From the Personal Toolbar. What's New in JavaScript 1.2. Netscape Communications Corporation. 1997 [2018-06-10]. (原始內容存檔於2002-06-11). 
  3. ^ Willison, Simon. Email from Brendan Eich. SitePoint. April 10, 2004 [2010-06-15]. (原始內容存檔於2009-07-21). 
  4. ^ Mozilla Firefox, Opera, Safari,和Chrome上執行且不支援IE.原始來源:Alex Boldt頁面存檔備份,存於互聯網檔案館

外部連結