我有一个简单的Greasemonkey脚本:
// ==UserScript==
// @name hello
// @namespace http://www.webmonkey.com
// @description A test of accessing documents using file:// protocol
// @include http* file*
// @grant none
// ==/UserScript==
alert("hi");
只要网址格式为http://...
,它的工作正常。如何让脚本在file://...
格式的网址上运行?
在“用户设置”部分,我有http://*
和file://*
作为包含的页面,在“脚本设置”部分,我在“包含的页面”框中有http* file*
。
答案 0 :(得分:9)
见"Greaseable schemes" in the Greasemonkey docs。默认情况下,Greasemonkey会忽略file://
协议。
对于使用file://
路径的脚本,您需要打开about:config并将extensions.greasemonkey.fileIsGreaseable
设置为true
。
您可能需要重新启动Firefox才能使此设置生效。
此外,// @include http* file*
语法无效。你会用:
// @include http://*
// @include https://*
// @include file://*
除了尽可能避免使用此类全局包含。调整脚本只显示您明确定位的域和/或页面。
这:避免意外的副作用,提高性能,并减少被“零日”攻击所淹没的可能性。
我还建议您删除自己编写的脚本的用户设置选项。这只会导致后来的心痛和困惑。 ;)仅对您控制的脚本使用脚本的元数据部分。