FireFox GreaseMonkey User Script 小抄

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    腳本執行點
  1. document-end  預設值。將在主頁加載後但在其他資源(圖像、樣式表等)加載之前執行。
  2. document-start 在任何文件開始加載之前執行,因此在任何頁面的 script 執行或圖像加載之前執行。
  3. 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();
})();

程式是運氣與直覺堆砌而成的奇蹟。
若不具備這兩者,不可能以這樣的工時實現這樣的規格。
修改規格是對奇蹟吐槽的褻瀆行為。
而追加修改則是相信奇蹟還會重現的魯莽行動。