跳转到内容

小书签:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Rat2留言 | 贡献
w:en:Bookmarklet 新条目
 
Bencmq留言 | 贡献
第30行: 第30行:
bookmarklets.com的Steve Kangas发明了 "bookmarklet" 这个词<ref name="bookmarklets.com" >域名[http://www.bookmarklets.com bookmarklets.com]注册于[[1998年]][[4月9日]]</ref>,之后他在[[网景]]的JavaScript指南中的某些内容上产生了自己的创意。最早的一个词语是'''favelet'''在[[2001年]][[9月6日]]被[[:en:Tantek Çelik|Tantek Çelik]]所使用。而在网景发明[[JavaScript]]的[[:en:Brendan Eich|Brendan Eich]]这样说明小书签的来历:
bookmarklets.com的Steve Kangas发明了 "bookmarklet" 这个词<ref name="bookmarklets.com" >域名[http://www.bookmarklets.com bookmarklets.com]注册于[[1998年]][[4月9日]]</ref>,之后他在[[网景]]的JavaScript指南中的某些内容上产生了自己的创意。最早的一个词语是'''favelet'''在[[2001年]][[9月6日]]被[[:en:Tantek Çelik|Tantek Çelik]]所使用。而在网景发明[[JavaScript]]的[[:en:Brendan Eich|Brendan Eich]]这样说明小书签的来历:


{{quote|They were a deliberate feature in this sense: I invented the <code>javascript:</code> URL along with JavaScript in 1995, and intended that <code>javascript:</code> URLs could be used as any other kind of URL, including being bookmark-able.
{{Cquote|They were a deliberate feature in this sense: I invented the <code>javascript:</code> URL along with JavaScript in 1995, and intended that <code>javascript:</code> URLs could be used as any other kind of URL, including being bookmark-able.


In particular, I made it possible to generate a new document by loading, ''e.g.'' <code>javascript:'hello, world'</code>, but also (key for bookmarklets) to run arbitrary script against the DOM of the current document, e.g. <code>javascript:alert(document.links[0].href)</code>. The difference is that the latter kind of URL uses an expression that evaluates to the undefined type in JS. I added the void operator to JS before Netscape 2 shipped to make it easy to discard any non-undefined value in a <code>javascript:</code> URL.|Brendan Eich|3=email to [[Simon Willison]]<ref>{{cite web |url=http://www.sitepoint.com/blogs/2004/04/09/bookmarklets/#comment-3424 |title=Email from Brendan Eich |publisher=[[SitePoint]] |last=Willison |first=Simon |date=April 10th, 2004}}</ref>}}
In particular, I made it possible to generate a new document by loading, ''e.g.'' <code>javascript:'hello, world'</code>, but also (key for bookmarklets) to run arbitrary script against the DOM of the current document, e.g. <code>javascript:alert(document.links[0].href)</code>. The difference is that the latter kind of URL uses an expression that evaluates to the undefined type in JS. I added the void operator to JS before Netscape 2 shipped to make it easy to discard any non-undefined value in a <code>javascript:</code> URL.|Brendan Eich|3=email to [[Simon Willison]]<ref>{{cite web |url=http://www.sitepoint.com/blogs/2004/04/09/bookmarklets/#comment-3424 |title=Email from Brendan Eich |publisher=[[SitePoint]] |last=Willison |first=Simon |date=April 10th, 2004}}</ref>}}

2010年7月11日 (日) 06:54的版本

小书签是一种Applet,即一种小型的程序,以URL的形式被存为浏览器中的书签,或是网页上的一个链接。小书签的英文名,Bookmarklet是由BookmarkApplet组合而来。无论小书签如何以什么形式储存,它们都是用来对浏览器或是网页添加一些特定功能的。点击时,小书签会执行这些操作,从执行搜索到导出数据。小书签一般是JavaScript应用程序

概念

浏览器使用隶属于<a>标签的hrefURI标签来存储书签。URI前缀,例如http:, file:, 或是ftp:来确定协议以及请求剩余字符串的格式。

浏览器也能像执行其它前缀一样执行javascript:。浏览器在内部将协议处理为JavaScript, 并将剩余的字符串作为JavaScript脚本来执行,并把执行结果作为新页面

脚本的执行可作用于当前页面,也可能变化。如果脚本返回了undenfined类型(而不是字符串等),浏览器就不会载入新页面而是简单直接的在当前页面内容上运行。这样就允许修改页面内容,比如字体/颜色而无需刷新页面。

以下的匿名函数可以用来强制脚本返回undenfined类型:

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

用途

小书签的存储与使用和普通书签一致。如同它们的名字,小书签是一种十分易用的工具。例如:

  • 修改网页的外观(修改字体大小,背景颜色等)
  • 从网页中提取某些数据(链接,图片,文本等)
  • 将当前页面提交到博客平台(例如Posterous, Tumblr),社会化网站(例如Facebook, Twitter),缩短链接服务(bit.ly, su.pr 等)或是书签服务(Delicious
  • 快速调用搜索引擎搜索当前页面选中的文字
  • 将网页提交到链接检测服务,或是在线翻译服务
  • 设置某些页面本身不能修改的功能

安装小书签一般是通过创建一个新书签并将代码粘贴入新建书签的URL栏而实现的。现代浏览器中也可把链接形式的小书签直接拖拽到书签栏中,此后小书签就可以像打开普通书签一样正常运作了。

历史

bookmarklets.com的Steve Kangas发明了 "bookmarklet" 这个词[1],之后他在网景的JavaScript指南中的某些内容上产生了自己的创意。最早的一个词语是favelet2001年9月6日Tantek Çelik所使用。而在网景发明JavaScriptBrendan Eich这样说明小书签的来历:

例子

以下示例小书签可以在浏览器窗口中以维基为搜索引擎搜索任何高亮的文字。正常情况下以下的小书签可以被安装在[3]浏览器书签栏中。选中文字后即可点击这个小书签以执行搜索。

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('Enter%20search%20terms%20for%20Wikipedia',''); open('http://en.wikipedia.org' + (s ? '/zhwiki/w/index.php?title=Special:Search&search=' + encodeURIComponent(s) : '')).focus();

参见

参考文献

  1. ^ 域名bookmarklets.com注册于1998年4月9日
  2. ^ Willison, Simon. Email from Brendan Eich. SitePoint. April 10th, 2004. 
  3. ^ Mozilla Firefox, Opera, Safari, 和Chrome上运行且不支持IE. 原始来源:Alex Boldt

外部链接