22

簡単な Greasemonkey スクリプトを作成しました。このスクリプトの「構成」ページを作成しようとしています (Google Chrome 拡張機能に使用されるようなものです)。ユーザースクリプト用の構成ページを作成する方法はありますか? 、Google Chrome 拡張機能の「オプション」ページのように?Greasemonkey スクリプトの一部として .html ページを含める方法は (私の知る限り) ないため、他のオプションを探しています。

// ==UserScript==
// @name       Redirector
// @namespace  http://use.i.E.your.homepage/
// @version    0.1
// @description  enter something useful
// @match      http://*/*
// @copyright  2012+, You
// @run-at document-start
// ==/UserScript==

redirectToPage("http://www.youtube.com/", "http://www.google.com");

function redirectToPage(page1, page2){
if(window.location.href.indexOf(page1) != -1){
    window.location.href = page2;
}
}
4

5 に答える 5

26

ユーザースクリプト用の構成ページを提供するライブラリがいくつかあります。

1) GM_config

GM_config ダイアログの例

2)モンキーコンフィグ

MonkeyConfig ダイアログの例

3) GM_registerMenuCommand サブメニュー JS モジュール


使用法はライブラリごとに異なりますが、通常は必要なアクセス許可 ( や など) を付与し、次GM_getValueのようにディレクティブGM_setValueを介してライブラリを要求します。@require

// ==UserScript==
// @name          My Userscript
// @description   An example userscript with a config page
// @version       0.0.1
// @require       https://www.example.com/lib/myconfig.js
// @grant         GM_getValue
// @grant         GM_setValue
// @grant         GM_addStyle
// @grant         GM_registerMenuCommand
// ==/UserScript==

const config = new MyConfig({ ... })

次に、設定ページ/ダイアログを開くメニュー コマンドを登録します。

GM_registerMenuCommand('Configure My Userscript!', () => {
    config.open()
})

MonkeyConfig の場合、コマンドを登録できます。

const config = new MonkeyConfig({
    title: 'Configure My Userscript!',
    menuCommand: true,
    // ...
})

高度な用途では、コンフィギュレーターを使用して、閉じる/キャンセル/保存イベントにリスナーを登録したり、CSS やその他のオプションを制御したりできます。詳細な手順については、GM_config wikiおよびMonkeyConfig ホームページを参照してください。

于 2017-04-18T02:06:37.337 に答える
8

クロムに使用している場合は、Greasemonkey ではなく Tampermonkey です。

GM_getResourceText の使用を検討し、html を pastebin.com (または同様のもの) に貼り付け、リンクを @resource の 1 つとしてメタデータ ブロックに追加します。少なくとも、Greasemonkey では機能することはわかっています。

例えば:

// @resource configHtml http://pastebin.com/raw.php?i=2RjKfwJQ

// ... some DOM node that you will append to the current page
node.innerHTML = GM_getResourceText("configHtml");
于 2013-01-30T11:36:58.347 に答える
1

すでに含まれているページにパラメーターを使用し、それが設定されている場合は、ドキュメント全体をクリアします: http://page.my.script.runs.on/?configPage=true

if(getUrlParameter("configPage") === "true") {
    $(document).empty
}
于 2016-03-05T16:12:57.063 に答える
1

これは非常に必要ですが、今のところ 2 つのアプローチの組み合わせが機能するはずです。

1)個人的な使用のために、スクリプトの先頭に一連の変数があります。ここでの問題は、他の誰かが私のスクリプトを使用すると、更新によってその人の設定が消去されることです。

2) Web サイトに構成ページを用意します。これは素晴らしく機能しますが、ウェブサイトは常に削除されます. スクリプトが動作する Web サイトに依存する正当な理由はありません。

これらの両方を行うと、スクリプトの Web サイトが消えたときに、ユーザーはスクリプトの設定を編集できます。

望ましくない機能が // コメントアウトされている例を次に示します。

http://go-here.nl/gm/wikipedia-clean-up.php

頑張って楽しんでください

于 2015-05-16T14:58:24.377 に答える