小书签

包含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页面存档备份,存于互联网档案馆

外部链接