深入浅出 Greasemonkey
?
重新启动 Firefox。
当您重新启动了 Firefox 后,选择 正如您所见到的,这个 这里有六条独立的元数据信息,作为一个整体包含在注释中。现在让我们按顺序逐条解释。首先讲最外面的这层包装。 这是关于用户脚本功能的描述。在您第一次安装脚本时,它将会在安装对话框中显示,之后会在“ 这段代码分为四个步骤: 我使用花括号语法迅速建立了一个关联数组。等价于(但是键入更少)单独把每个关键字和值对应起来: 每个8位的字符都是用十六进制值表示的,是用了逃逸语法(escaping syntax) 这段代码分为四个步骤: 接下来,我在页面中使用 XPath 查询语句搜索所有的含有 第四步比较简单,因为 Javascript 数组有个 如果原始程序以交互方式工作,它并不打印这样的声明,你的基于程序的作品也就不用打印声明 ? 这些要求适用于修改了的作品的整体。如果能够确定作品的一部分并非程序的衍生产品,可以合理地认为这部分是独立的,是不同的作品。当你将它作为独立作品发布时,它不受此许可证和它的条款的约束。但是当你将这部分作为基于程序的作品的一部分发布时,作为整体它将受到许可证条款约束。准予其他许可证持有人的使用范围扩大到整个产品。也就是每个部分,不管它是谁写的。 因此,本条款的意图不在于索取权利;或剥夺全部由你写成的作品的权利。而是履行权利来控制基于程序的集体作品或衍生作品的发布。 此外,将与程序无关的作品和该程序或基于程序的作品一起放在存贮体或发布媒体的同一卷上,并不导致将其他作品置于此许可证的约束范围之内。 你可以以目标码或可执行形式复制或发布程序(或符合 第 2 款 的基于程序的作品),只要你遵守前面的第1 , 2 款,并同时满足下列3条中的1条: ? 作品的源码指的是对作品进行修改最优先择取的形式。对可执行的作品讲,完整的源码包括:所有模块的所有源程序,加上有关的接口的定义,加上控制可执行作品的安装和编译的 script。作为特殊例外,发布的源码不必包含任何常规发布的供可执行代码在上面运行的操作系统的主要组成部分(如编译程序,内核等)。除非这些组成部分和可执行作品结合在一起。 如果采用提供对指定地点的访问和复制的方式发布可执行码或目标码,那么,提供对同一地点的访问和复制源码可以算作源码的发布,即使第三方不强求与目标码一起复制源码。 除非你明确按许可证提出的要求去做,否则你不能复制,修改,转发许可证和发布程序。任何试图用其他方式复制,修改,转发许可证和发布程序是无效的。而且将自动结束许可证赋予你的权利。然而,对那些从你那里按许可证条款得到副本和权利的人们,只要他们继续全面履行条款,许可证赋予他们的权利仍然有效。 你没有在许可证上签字,因而你没有必要一定接受这一许可证。然而,没有任何其他东西赋予你修改和发布程序及其衍生作品的权利。如果你不接受许可证,这些行为是法律禁止的。因此,如果你修改或发布程序(或任何基于程序的作品),你就表明你接受这一许可证以及它的所有有关复制,发布和修改程序或基于程序的作品的条款和条件。 每当你重新发布程序(或任何基于程序的作品)时,接受者自动从原始许可证颁发者那里接到受这些条款和条件支配的复制,发布或修改程序的许可证。你不可以对接受者履行这里赋予他们的权利强加其他限制。你也没有强求第三方履行许可证条款的义务。 如果由于法院判决或违反专利的指控或任何其他原因(不限于专利问题)的结果,强加于你的条件(不管是法院判决,协议或其他)和许可证的条件有冲突。他们也不能用许可证条款为你开脱。在你不能同时满足本许可证规定的义务及其他相关的义务时,作为结果,你可以根本不发布程序。例如,如果某一专利许可证不允许所有那些直接或间接从你那里接受副本的人们在不付专利费的情况下重新发布程序,唯一能同时满足两方面要求的办法是停止发布程序。 如果本条款的任何部分在特定的环境下无效或无法实施,就使用条款的其余部分。并将条款作为整体用于其他环境。 本条款的目的不在于引诱你侵犯专利或其他财产权的要求,或争论这种要求的有效性。本条款的主要目的在于保护自由软件发布系统的完整性。它是通过通用公共许可证的应用来实现的。许多人坚持应用这一系统,已经为通过这一系统发布大量自由软件作出慷慨的供献。作者/捐献者有权决定他/她是否通过任何其他系统发布软件。许可证待有人不能强制这种选择。 本节的目的在于明确说明许可证其余部分可能产生的结果。 如果由于专利或者由于有版权的接口问题使程序在某些国家的发布和使用受到限止,将此程序置于许可证约束下的原始版权拥有者可以增加限止发布地区的条款,将这些国家明确排除在外。并在这些国家以外的地区发布程序。在这种情况下,许可证包含的限止条款和许可证正文一样有效。 自由软件基金会可能随时出版通用公共许可证的修改版或新版。新版和当前的版本在原则上保持一致,但在提到新问题时或有关事项时,在细节上可能出现差别。 每一版本都有不同的版本号。如果程序指定适用于它的许可证版本号以及“任何更新的版本”。你有权选择遵循指定的版本或自由软件基金会以后出版的新版本,如果程序未指定许可证版本,你可选择自由软件基金会已经出版的任何版本。 如果你愿意将程序的一部分结合到其他自由程序中,而它们的发布条件不同。写信给作者,要求准予使用。如果是自由软件基金会加以版权保护的软件,写信给自由软件基金会。我们有时会作为例外的情况处理。我们的决定受两个主要目标的指导。这两个主要目标是:我们的自由软件的衍生作品继续保持自由状态。以及从整体上促进软件的共享和重复利用。 由于程序准予免费使用,在适用法准许的范围内,对程序没有担保。除非另有书面说明,版权所有者和/或其他提供程序的人们“一样”不提供任何类型的担保。不论是明确的,还是隐含的。包括但不限于隐含的适销和适合特定用途的保证。全部的风险,如程序的质量和性能问题都由你来承担。如果程序出现缺陷,你承担所有必要的服务,修复和改正的费用。 除非适用法或书面协议的要求,在任何情况下,任何版权所有者或任何按许可证条款修改和发布程序的人们都不对你的损失负有任何责任。包括由于使用或不能使用程序引起的任何一般的,特殊的,偶然发生的或重大的损失(包括但不限于数据的损失,或者数据变得不精确,或者你或第三方的持续的损失,或者程序不能和其他程序协调运行等)。即使版权所有者和其他人提到这种损失的可能性也不例外。 条款和条件结束 如果你开发了新程序,而且你需要它得到公众最大限度的利用。要做到这一点的最好办法是将它变为自由软件。使得每个人都能在遵守条款的基础上对它进行修改和重新发布。 为了做到这一点,绘程序附上下列声明。最安全的方式是将它放在每个源程序的开头,以便最有效地传递拒绝担保的信息。每个文件至少应有“版权所有”行以及在什么地方能看到声明全文的说明。 <用一行空间给出程序的名称和它用来做什么的简单说明。> 版权所有 (C) <年份> <作者姓名> 这一程序是自由软件,你可以遵照自由软件基金会出版的GNU通用公共许可证条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你的选择)用任何更新的版本。 发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU通用公共许可证。 你应该已经和程序一起收到一份GNU通用公共许可证的副本。如果还没有,写信给:The Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 当然,请加上通过电子或者纸质邮件联系你的信息。 如果程序以交互方式进行工作,当它开始进人交互方式工作时,使它输出类似下面的简短声明: Gnomovision第69版,版权所有(C) 年份,作者姓名 Gnomovision绝对没有担保。要知道详细情况,请输人 ‘show w’。 这是自由软件,欢迎你遵守一定的条件重新发布它,要知道详细情况,请输人‘Show c’。 假设的命令‘shovr w’和‘show c’应显示通用公共许可证的相应条款。当然,你使用的命令名称可以不同于‘show w’和‘show c’。根据你的程序的具体情况,也可以用菜单或鼠标选项来显示这些条款。 如果需要,你应该取得你的上司(如果你是程序员)或你的学校签署放弃程序版权的声明。下面只是一个例子,你应该改变相应的名称: Ynyodyne公司以此方式放弃 James Harker 所写的 Gnomovision 程序的全部版权利益。 <Ty coon签名>,1989年4月1日 Ty Coon, 副总裁 这一许可证不允许你将程序并人专用程序。如果你的程序是一个子程序库。你可能会认为用库的方式和专用应用程序连接更有用。如果这是你想做的事,使用GNU库通用公共许可证代替本许可证。 appdir 小图标,可以跳转到全部视频清单。 例?4.22.?获取当前域名例?4.23.?在链接末尾添加查询参数例?4.24.?重定向一个站点到它的安全站点例?4.25.?当用户点击页面上任意地方时做点事例?4.26.?当表单提交时做点事例?4.27.?将任意字符串解析为 XML例?4.28.?解析远程源的 XML例?5.1.?重定向 GMail 到等同的 小图标,可以跳转到全部视频清单。 过程?1.1.?安装 Greasemonkey 扩展过程?1.2.?安装 Butler 用户脚本过程?1.3.?暂时禁用 Butler过程?1.4.?卸载 Butler过程?1.5.?重新配置 Butler 排除 Froogle过程?2.1.?编辑 Hello World 的源代码然后观察运行结果过程?3.1.?打开错误控制台过程?3.2.?安装 DOM 查看器过程?3.3.?查看和编辑深入浅出 Greasemonkey的主页过程?3.4.?用 Inspect Element 直接查看元素过程?3.5.?安装 Javascript Shell过程?6.1.?把 Butler 编译成浏览器扩展
在通常用作软件交换的媒体上,和目标码一起附有机器可读的完整的源码。这些源码的发布应符合上面第1,2款的要求。或者 在通常用作软件交换的媒体上,和目标码一起,附有给第三方提供相应的机器可读的源码的书面报价。有效期不少于3年,费用不超过实际完成源程序发布的实际成本。源码的发布应符合上面的第1,2款的要求。或者 和目标码一起,附有你收到的发布源码的报价信息。(这一条款只适用于非商业性发布,而且你只收到程序的目标码或可执行代码和按第2项要求提供的报价。)
3.?如何将这些条款用到你的新程序
@ssv