跳转到内容

小书签:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Bencmq留言 | 贡献
Cewbot留言 | 贡献
去除重複的轉換規則: 去除與公共轉換組重複的轉換規則 (1): 存在於轉換組 IT: zh-cn:在线;zh-tw:線上 (本次機械人作業已完成14094%)
 
(未显示25个用户的57个中间版本)
第1行: 第1行:
{{noteTA
'''小书签'''是一种[[Applet]]一种小型的程序,以[[URL]]的形式被存为[[浏览器]]中的书签,是网页上的一个链接。小书签的英文名,''Bookmarklet''是由''Bookmark''和''Applet''组合而来。无论小书签如何以什么形式储存,它们都是用来浏览器或是网页添加一些特定功能的。点击时,小书签会执行这些操作,执行搜索导出数据。小书签一般是[[JavaScript]][[应用]]。
|G1=IT
|1=zh-cn:窗口; zh-tw:視窗;
|2=zh-cn:书签栏; zh-tw:書籤工具列;
|3=zh-cn:点击; zh-tw:點選;
|4=zh-cn:社会化网站; zh-tw:社群網站;
|5=zh-cn:缩短链接服务; zh-tw:短網址服務;
|7=zh-cn:操作符; zh-tw:運算子;
}}
'''小书签'''({{lang-en|bookmarklet}}),又叫'''书签小程序'''一种小型的程序,以網址([[URL]]的形式被存为[[浏览器]]中的[[書籤 (瀏覽器)|书签]]也可以是网页上的一个链接。小书签的英文名,''Bookmarklet''是由''Bookmark''和''Applet''组合而来。无论小书签以什么形式储存,它们都是用来浏览器或是网页添加一些特定功能的。点击时,小书签会执行这些操作,包括执行搜索导出数据等等。小书签一般是[[JavaScript]][[電腦式|程式]]。

== 历史 ==
bookmarklets.com的Steve Kangas发明了''bookmarklet''这个词<ref name="bookmarklets.com">域名[http://www.bookmarklets.com bookmarklets.com] {{Wayback|url=http://www.bookmarklets.com/ |date=20090707090113 }}注册于1998年4月9日</ref>,之后他在[[Netscape]]的JavaScript指南中的某些内容上产生了自己的创意<ref>{{cite web|title=Activating JavaScript Commands From the Personal Toolbar|url=http://developer.netscape.com/docs/manuals/communicator/jsguide/misc.htm#1005712|work=What's New in JavaScript 1.2|publisher=Netscape Communications Corporation|archiveurl=https://web.archive.org/web/20020611183734/http://developer.netscape.com/docs/manuals/communicator/jsguide/misc.htm#1005712|archivedate=2002-06-11|year=1997|access-date=2018-06-10|dead-url=yes}}</ref>。最早的一个词语是'''favelet'''在2001年9月6日被[[坦塔克·塞里克]]所使用。而在Netscape发明[[JavaScript]]的[[布蘭登·艾克]]这样说明小书签的来历:

{{Cquote|这是一个特意设计的特性:我在1995年发明JavaScript的时候发明了<code>javascript:</code>这类URL,并打算使得<code>javascript:</code> URLs用法和其他URL一样,包括收录入收藏夹。

我特地把"JavaScript:" URL设计得可以在运行时产生一个新文档,''例如''<code>javascript:'hello, world'</code>,同时也可以在当前文档的[[文档对象模型|DOM]]下运行任意脚本(这点对小书签尤其有用),就像这样:<code>javascript:alert(document.links[0].href)</code>。这两者的区别就是,后者的URL在JS解析下值为undefined。我在Netscape 2投入市场前加入了void操作符来清除任何非undefined的<code>javascript:</code> URL的值。|布蘭登·艾克|3=寄给{{link-en|西門·威利森|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 10, 2004 |access-date=2010-06-15 |archive-date=2009-07-21 |archive-url=https://web.archive.org/web/20090721184550/http://www.sitepoint.com/blogs/2004/04/09/bookmarklets/#comment-3424 |dead-url=yes }}</ref>}}


== 概念 ==
== 概念 ==
浏览器使用隶属于<code>&lt;a&gt;</code>标签的<code>href</code>的[[URI]]标签来存储书签。[[URI]]前缀,例如<code>http:</code>, <code>file:</code>, 或是<code>ftp:</code>来确定协议以及请求剩余字符串的格式。
浏览器使用隶属于<code>&lt;a&gt;</code>标签的<code>href</code>的[[URI]]标签来存储书签。浏览器用[[URI]]前缀,例如<code>http:</code><code>file:</code>或是<code>ftp:</code>来确定协议以及请求剩余字符串的格式。


浏览器也能像执行其它前缀一样执行<code>javascript:</code>。浏览器在内部将协议处理为''JavaScript'', 并剩余的字符串作为JavaScript脚本来执行,并执行结果作为新页面
浏览器也能像执行其它前缀一样执行<code>javascript:</code>。在内部处理时,当浏览器检查到协议为''JavaScript'',就后面的字符串作为JavaScript脚本来执行,并执行结果产生一个新页面


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


以下的{{link-en|匿名函数|Anonymous_function#JavaScript}}可以用来强制脚本返回undenfined类型:
以下的[[匿名函数]]可以用来强制脚本返回undenfined类型:
<source lang="javascript">
<syntaxhighlight lang="javascript">
javascript:(function(){
javascript:(function(){
/* Statements returning a non-undefined type, e.g. assignments */
/* Statements returning a non-undefined type, e.g. assignments */
})();
})();
</syntaxhighlight>
</source>


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


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


== 历史 ==
=== 例子 ===
以下示例小书签可以在浏览器窗口中以维基为搜索引擎搜索选定的文字。正常情况下以下的小书签可以被安装在<ref>[[Mozilla Firefox]], [[Opera電腦瀏覽器|Opera]], [[Safari]],和[[Google Chrome|Chrome]]上运行且不支持IE.原始来源:[http://math-www.uni-paderborn.de/~axel/bookmarklet.html Alex Boldt] {{Wayback|url=http://math-www.uni-paderborn.de/~axel/bookmarklet.html |date=20210224021846 }}</ref>浏览器书签栏中。选中文字后即可点击这个小书签以执行搜索。
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]]这样说明小书签的来历:

{{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>}}

== 例子 ==
以下示例小书签可以在浏览器窗口中以维基为搜索引擎搜索任何高亮的文字。正常情况下以下的小书签可以被安装在<ref>[[Mozilla Firefox]], [[Opera]], [[Safari]], 和[[Chrome]]上运行且不支持IE. 原始来源:[http://math-www.uni-paderborn.de/~axel/bookmarklet.html Alex Boldt]</ref>浏览器书签栏中。选中文字后即可点击这个小书签以执行搜索。


{{#tag:pre|<source lang="javascript" enclose="none">
<syntaxhighlight lang="javascript" inline style="white-space:pre-wrap;display:block">
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();
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 ? '/zhwiki/w/index.php?title=Special:Search&search=' + encodeURIComponent(s): '')).focus();
</syntaxhighlight>
</source>| style="white-space:pre-wrap;"}}


== 参见 ==
== 参见 ==
第50行: 第60行:


== 外部链接 ==
== 外部链接 ==
* {{cite web |url=http://bookmarklets.com/tools/categor.html |title=Bookmarklets - Tool Categories |work=Bookmarklets.com}}
* {{cite web |url=http://bookmarklets.com/tools/categor.html |title=Bookmarklets - Tool Categories |work=Bookmarklets.com |access-date=2010-06-15 |archive-date=2021-02-14 |archive-url=https://web.archive.org/web/20210214234926/http://www.bookmarklets.com./tools/categor.html |dead-url=no }}
* {{cite web |url=http://www.appinn.com/bookmarklet/ |title=Bookmarklet – 小书签,实用浏览器小工具补完 |work=小众软件}}
* {{cite web |url=http://www.appinn.com/bookmarklet/ |title=Bookmarklet –小书签,实用浏览器小工具补完 |work=小众软件 |access-date=2010-06-15 |archive-date=2021-01-18 |archive-url=https://web.archive.org/web/20210118224608/https://www.appinn.com/bookmarklet/ |dead-url=no }}
* {{cite web |url=http://www.ruanyifeng.com/blog/2011/06/a_guide_for_writing_bookmarklet.html |title=Bookmarklet编写指南 |work=阮一峰的网络日志 |access-date=2011-06-13 |archive-date=2021-01-18 |archive-url=https://web.archive.org/web/20210118225200/https://www.ruanyifeng.com/blog/2011/06/a_guide_for_writing_bookmarklet.html |dead-url=no }}

* {{Cite web|title=各种骚操作,中文网最全 Bookmarklet 小书签|url=https://www.runningcheese.com/bookmarklets|url-status=live|archive-url=https://web.archive.org/web/20230821145757/https://www.runningcheese.com/bookmarklets|archive-date=2023-08-21|website=奔跑中的奶酪|series=网上冲浪指南|language=zh|publication-date=2022-01-05}}
[[Category:网页技术]]
{{網頁瀏覽器}}
[[Category:JavaScript]]
[[Category:JavaScript]]
[[Category:網站開發]]

[[ar:بريمج الإشارة المرجعية]]
[[ca:Bookmarklet]]
[[de:Bookmarklet]]
[[en:Bookmarklet]]
[[es:Bookmarklet]]
[[fr:Bookmarklet]]
[[it:Bookmarklet]]
[[nl:Bookmarklet]]
[[ja:ブックマークレット]]
[[pl:Skryptozakładka]]
[[pt:Bookmarklet]]
[[ru:Букмарклет]]
[[fi:Sovelluskirjanmerkki]]

2024年9月29日 (日) 14:17的最新版本

小书签(英語: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 ? '/zhwiki/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页面存档备份,存于互联网档案馆

外部链接

[编辑]