FireFox GreaseMonkey User Script 小抄
Metadata Block 設定說明
- author 作者名稱
- name 腳本名稱
- description 腳本說明
- version 腳本版本號
- icon 腳本圖示 例:http://www.example.org/icon.png
- homepageURL 腳本作者的首頁
- installURL 腳本安裝網址
- downloadURL 腳本下載網址
- updateURL 腳本更新網址
- grant 使用特殊的 API,若沒有時請設定為 none
- require 設定所需使用的外部 js 檔案(可以多筆)
- namespace 命名空間 例:http://www.example.com/gmscripts
- noframes 設定腳本不在 frames 內執行
- resource 資源設定(可以多筆) 例:[資源名稱] http://www.example.org/icon.png
- run-at 腳本執行點
- document-end 預設值。將在主頁加載後但在其他資源(圖像、樣式表等)加載之前執行。
- document-start 在任何文件開始加載之前執行,因此在任何頁面的 script 執行或圖像加載之前執行。
- document-idle 在頁面和所有資源(圖像、樣式表等)加載完畢並且頁面自身的 Scripts 執行後才執行。
- match 匹配的網站(可以多筆)
- include 包含的網站(可以多筆,支援 Regular Expressions)
- exclude 排除的網站(可以多筆,支援 Regular Expressions)
match 使用模式 (url-pattern)
<scheme>://<host><path>
- <scheme>:'*' | 'http' | 'https' | 'file' | 'ftp' | 'urn'
- <host>:'*' | '*.' <any char except '/' and '*'>+
- <path>:'/' <any chars>
例:
https://*/*,所有 https 開頭的網站
https://*.google.com,所有 https 開頭,且網站結尾為 google.com 的網站
https://*.google.com/foo*bar,所有 https 開頭,且網站結尾為 google.com 的網站,路徑開頭為foo,結尾為bar的網址
如:https://www.google.com/foo/baz/bar 或是 https://docs.google.com/footbar
urn:*,所有開頭為 urn 的網址,如:urn:uuid:54723bea-c94e-480e-80c8-a69846c3f582
<all_urls>,所有類型的網址
使用範例:
// ==用戶腳本==
// @name 我的腳本
// @namespace http://www.example.com/gmscripts
// @description 編寫腳本很有趣
// @include http://www.example.com/*
// @include http://www.example.org/*
// @exclude http://www.example.org/foo
// @require foo.js
// @resource resourceName1 resource1.png
// @resource resourceName2 http://www.example.com/resource2.png
// @version 1.0
// @icon http://www.example.net/icon.png
// ==/用戶腳本==
(function() {
alert('Hello World!');
})();
使用範例:
// ==UserScript==
// @name Remove Google AD
// @description 刪除 google 廣告視窗
// @version 1
// @grant none
// @match https://*/*
// @match https://*/*
// @exclude https://*.google.com/*
// @exclude http://*.google.com/*
// @exclude https://google.com/*
// @exclude http://google.com/*
// ==/UserScript==
(function() {
document.querySelectorAll('.adsbygoogle').forEach(function(e){
e.remove();
});
document.querySelectorAll('.adsbygoogle-noablate').forEach(function(e){
e.remove();
});
if (document.getElementById('aswift_0_host') != undefined) document.getElementById('aswift_0_host').remove();
})();
程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的魯莽行動。