Tampermonkeyのドキュメント



Tampermonkey Documentation



@doc https://www.tampermonkey.net/documentation.php

目次

@名前

@nameスクリプトの名前



@namespace

@namespaceスクリプトの名前空間

@バージョン

更新の確認に使用されるスクリプトのバージョン。



@著者

スクリプトの作成者

@description

短い重要な説明

@ homepage、@ homepageURL、@ website、@ source

スクリプト名から特定のページにリンクするために使用される「オプション」ページの作成者のホームページ。 @namespaceタグが「http://」で始まる場合、そのコンテンツもこの操作に使用されることに注意してください。



@ icon、@ iconURL、@ defaulticon

スコアの低いスクリプトは、スクリプト管理リストに表示されます

@ icon64および@ icon64URL

スクリプトアイコン64 * 64このラベルが付けられているが、アイコンが付けられている場合、アイコン画像はオプションページのいくつかの場所でズームされます

@updateURL

スクリプトのアドレスを更新します。注:@versionタグのみが更新されます

@downloadURL

更新が検出されたときにスクリプトがダウンロードされるURLを定義します。値がnoneの場合、更新チェックは実行されません。

@supportURL

ユーザーレポートの問題とパーソナルサポートのアドレスを定義する

@include

スクリプトを実行するページでは、通常のマッチングを使用できます。複数のタグを許可する
@includeはurlハッシュパラメータをサポートしていないことに注意してください。詳細については、ここをクリックしてください。詳細については、ここをクリックしてください。

// @include http://www.tampermonkey.net/* // @include http://* // @include https://* // @include *

@一致

@includeタグと同じ意味で、詳細についてはここをクリックしてください
注: ''ステートメントはまだサポートされておらず、 'http *://'もスキーム部分で受け入れられます。
複数のタグインスタンスを許可します。

@exclude

@includeまたは@matchに含まれている場合でも、URLを除外します。複数のタグを許可する

@必要とする

スクリプトが実行される前にロードおよび実行されるスクリプトファイルをポイントします
注:@requireを介してロードされたスクリプトとその「usestrict」ステートメントは、ユーザースクリプトのstrictモードに影響を与える可能性があります。

// @require https://code.jquery.com/jquery-2.1.4.min.js // @require https://code.jquery.com/jquery-2.1.3.min.js#sha256=23456... // @require https://code.jquery.com/jquery-2.1.2.min.js#md5=34567...,sha256=6789...

整合性を確保する方法の詳細については、サブリソースの整合性セクションを確認してください。複数のタグインスタンスを許可します。

@資源

プリロードはスクリプトを介して渡すことができますGM_getresourceurl GM_getresourcetextで訪問したリソース

// @resource icon1 http://www.tampermonkey.net/favicon.ico // @resource icon2 /images/icon.png // @resource html http://www.tampermonkey.net/index.html // @resource xml http://www.tampermonkey.net/crx/tampermonkey.xml // @resource SRIsecured1 http://www.tampermonkey.net/favicon.ico#md5=123434... // @resource SRIsecured2 http://www.tampermonkey.net/favicon.ico#md5=123434...sha256=234234...

@connect

このタグは、GM_xmlhttpRequestを含むドメイン(トップレベルドメインなし)を定義します。取得したサブドメイン
// @connect
次の値にすることができます

  • ドメインは次のようになります:tampermokey.net (サブドメインを許可できます)
  • 次のようなサブドメイン:safari.tampermokey.net
  • self :スクリプトが現在実行されているドメインを一覧表示します
  • localhostローカルホストにアクセスする権限を持っている
  • 1.2.3.4 IPアドレスへのリンク
  • *

@走る

スクリプトが挿入される時間を定義します。他のスクリプト処理とは異なり、@ run-atは、スクリプトを最初に実行する時間を定義します。

これは、必要なスクリプトを取得するのに長い時間がかかるため、@ requireでマークされたスクリプトがドキュメントのロード後に実行される可能性があることを意味します。いずれの場合も、特定のインジェクション時間の後に発生するすべてのdomnodeinsertedおよびdomcontentloadedイベントはキャッシュされ、インジェクション中にスクリプトに渡されます。

// @run-at document-start // The script will be injected as quickly as possible // @run-at document-body // is injected when the body element exists // @run-at document-end // Injected when the DOMContentLoaded event is triggered or later // @run-at document-idle // Injected when the DOMContentLoaded event is triggered If no @run-at tag is also injected at this time // @run-at context-menu // Injected when the browser context menu is clicked (only desktop Chrome-based browser) // Note: If context-menu @include and @exclude variables are used, they will be ignored, but may change in the future

@付与

@grantは、GM_ *関数のホワイトリストを設定するために使用されます。 GM_ * functionは、いくつかのunsafeWindowオブジェクトといくつかの影響力のあるウィンドウ関数です。 @grantタグがない場合、TMはスクリプトに必要なものを推測します

// @grant GM_setValue // @grant GM_getValue // @grant GM_setClipboard // @grant unsafeWindow // @grant window.close // @grant window.focus

@noframes

このタグは、スクリプトがiframeではなくメインページで実行されることを示します

@unwrap

このタグはGoogleChromeで必要ないため、無視されます

@nocompat

現在、tmは@matchタグを探すことで、スクリプトがgoogle chrome / chromiumの知識で書かれているかどうかを検出しようとしますが、すべてのスクリプトがそれを使用するわけではありません。これが、tmがこのタグをサポートして、firefox / greasemonkey用に作成されたスクリプトの実行に必要なすべての最適化を無効にする理由です。このタグを拡張可能に保つために、スクリプトで処理できるブラウザー名を追加できます。

アプリケーションプログラミングインターフェイス(高度なAPI)

unsafeWindow

unsafeWindowオブジェクトは、ページのjs関数と変数へのアクセスを提供します

サブリソースの整合性

この目的のために、@ resourceおよび@requireでマークされたURLのハッシュコンポーネントを使用できます。

// @resource SRIsecured1 http://www.tampermonkey.net/favicon1.ico#md5=ad34bb... // @resource SRIsecured2 http://www.tampermonkey.net/favicon2.ico#md5=ac3434...,sha256=23fd34... // @require https://code.jquery.com/jquery-2.1.1.min.js#md5=45eef... // @require https://code.jquery.com/jquery-2.1.2.min.js#md5=ac56d...,sha256=6e789...

TMネイティブはフォールバックとしてMD5ハッシュをサポートし、他のすべて(SHA-1、SHA-256、SHA-384、およびSHA-512)はwindow.cryptoに依存します。複数のハッシュが指定されている場合(コンマまたはセミコロンで区切られている場合)、TMは現在サポートされている最後のハッシュを使用します。外部リソースのコンテンツが選択したハッシュと一致しない場合、リソースはユーザースクリプトに渡されません。すべてのハッシュは、16進形式またはbase64形式でエンコードする必要があります。

GM_addStyle(css)

ドキュメントにスタイルを追加し、挿入されたノードを返します

GM_deleteValue(name)

ストレージから「名前」を削除します

GM_listValues()

ストレージ内のすべての名前を一覧表示します

GM_addValueChangeListener(name、function(name、old_value、new_value、remote){})

ストレージに変更イベントリスナーを追加し、リスナーIDを返します

「名前」は観測された変数です

コールバック関数の「remote」変数は、この値が別のタブインスタンスから変更されたか(true)、このスクリプトインスタンスで変更されたか(false)を示します。

したがって、異なるブラウザタブのスクリプトは、この機能を使用して相互に通信できます。

このAPIを使用して、さまざまなブラウザのタブと通信できます

GM_removeValueChangeListener(listener_id)

リスナーIDでリスナー変更イベントを削除します

GM_setValue(名前、値)

「name」の値をstorageに設定します

GM_getValue(name、defaultValue)

ストレージから「名前」の値を取得する

GM_log(メッセージ)

コンソールにログオンを印刷する

GM_getResourceText(name)

スクリプトの先頭で予約されている@resourceタグのコンテンツを取得します

GM_getResourceURL(name)

スクリプトの先頭で定義されている@resourceタグのbase64encodeURIを取得します

GM_registerMenuCommand(name、fn、accessKey)

このスクリプトの実行時に、ページにTMを表示できるメニューコマンドを登録し、メニューコマンドIDを返します。

これは、TMのメニューを直接表示するmingを登録できることを意味します

GM_unregisterMenuCommand(menuCmdId)

メニューコマンドID(GM_registerMenuCommandを介して提供)に基づいてメニューコマンドの登録を解除します。

GM_openInTab(url、options)、GM_openInTab(url、loadInBackground)

パラメータurlを使用して新しいタブを開きます。オプションは次の値にすることができます

  • アクティブは、新しいタブがフォーカスされているかどうかを決定し、フォーカスされているとは直接表示されることを意味します
  • 挿入現在のタブの後に新しいタブを挿入します
  • setParentは、タブが閉じられた後、現在のタブに再度フォーカスを合わせます

さらに、新しいタブが追加されます。 loadinbackgroundはactiveとは逆の意味を持ち、Greasemonkey3.xとの互換性を実現するために追加されました。 「アクティビティ」または「バックグラウンドのロード」が指定されていない場合、タブはフォーカスされません。この関数は、関数close、リスナーonclosed、およびclosedと呼ばれるフラグを持つオブジェクトを返します。

GM_xmlhttpRequest(details)

xmlHttpRequestを作成します。
パラメータの詳細の属性は次のとおりです。

  • メソッドは、GET、HEAD、POSTのいずれかになります。
  • リクエストされたURL
  • 次のようなヘッダー:user-agent、referer、…(一部の特別なヘッダーはSafariおよびAndroidブラウザーではサポートされていません)
  • データ一部の文字列には、過去に送信された投稿リクエストがあります
  • バイナリはバイナリモードを言った、タイプ送信データ
  • タイムアウトタイムアウト
  • コンテキストが応答オブジェクトのオブジェクトに追加されます
  • responseTypeは、arraybuffer、blob、jsonにすることができます
  • overrideMimeType要求されたMIMEタイプ
  • 匿名はリクエストでCookieを送信する必要はありません。詳細についてはフェッチコメントを参照してください
  • fetch(beta)は、fetchを使用してxhrリクエストを置き換えます。 Chromeでは、これによりxhr.abort、details.timeout、xhr.onprogressが機能せず、xhr.onreadystatechangeがreadystate4イベントのみを受信するようになります。
  • ユーザー名許可されたユーザー名
  • パスワード許可されたユーザーパスワード
  • onabortリクエストが中断されたときに実行されるコールバック関数
  • onerrorリクエストがエラーで終了したときに実行する必要があるコールバック関数
  • onloadstartリクエストの読み込み開始時に実行されるコールバック関数
  • onprogressリクエストステータスが変更されたときに実行されるコールバック関数
  • onreadystatechange要求された準備完了状態の変更は、実行されるコールバック関数です。
  • タイムアウト後に実行されるontimeoutコールバック関数
  • onloadリクエストが返されたときに実行されるコールバック関数。彼のいくつかのパラメータは次のとおりです。
    • finalUrl-データがロードされた場所からのすべてのリダイレクト後の最終URL
    • readyState-準備完了状態
    • status-リクエストステータス
    • statusText-リクエストステータステキスト
    • responseHeaders-リクエストレスポンスヘッダー
    • response-details.responseTypeが設定されている場合のオブジェクトとしての応答データ
    • responseXML-XMLドキュメントとしての応答データ
    • responseText-プレーン文字列としての応答データ

返されるオブジェクトには、次のプロパティが含まれています。

  • リクエストをキャンセルするabort-function
    注:属性同期はサポートされていません

重要:この方法を使用する場合は、@ connectbタグに移動して詳細を確認してください

GM_download(詳細)、GM_download(url、name)

ローカルディスクへのダウンロードリソースを使用する

詳細の属性:

  • url-リソースのURL
  • name-ファイル名。セキュリティ上の理由から、ファイル拡張子はTMパラメータページのホワイトリストに含まれている必要があります。
  • headers-GM_xmlhttpRequestのようなリクエストヘッダーを設定します
  • saveAs-ブール値、保存されたポップアップを表示します
  • onerror失敗で終了したコールバック関数をダウンロードします
  • オンロードが完了した後に実行されるコールバック関数
  • ダウンロード中に変更される進行中のコールバック関数
  • ontimeoutダウンロードタイムアウト実行コールバック関数
    これで、ファイル内のonerrorのパラメーターは次のようになります。
  • エラー-エラーの原因
    • not_enabled-ユーザーがダウンロード機能を有効にしていない
    • not_whitelisted-ダウンロードしたファイルの種類がホワイトリストに含まれていません
    • not_permitted-ユーザーはダウンロード許可を開いていますが、ダウンロード許可は開いていません
    • not_supported-ブラウザまたはバージョンが原因で、ダウンロード属性はサポートされていません
    • not_succeeded-ダウンロードが開始されなかったか、失敗しました。詳細はより多くの情報を提供することができます
  • 詳細-エラーの詳細

次のプロパティを含むオブジェクトを返します

  • 中止-ダウンロードをキャンセルする機能
    ダウンロードモードに応じて、gm_u infoは、ダウンロードモードという名前の属性を提供します。この属性は、ネイティブ、無効、またはブラウザーのいずれかの値に設定されます。

GM_getTab(コールバック)

タブが開いている限り、永続オブジェクトを取得します。

GM_saveTab(tab)

ページを閉じた後、再度開くためにタブオブジェクトを保存します

GM_getTabs(コールバック)

他のスクリプトインスタンスと通信するために、すべてのタブオブジェクトをハッシュとして取得します。

GM_notification(details、ondone)、GM_notification(text、title、image、onclick)

H5デスクトップ通知を表示するか、現在のタブを強調表示します
詳細属性:

  • テキスト-通知の問題
  • title-通知のタイトル
  • 画像-画像
  • ハイライト-タブをハイライトするかどうかのブールロゴ
  • サイレント-ブール値が音楽を再生するかどうか
  • 通知表示のタイムアウト時間0は、常に表示されることを意味します
  • ondone-通知がクリックされたかタイムアウトされたかに関係なく、通知が閉じられたときに実行される関数
  • onclick-クリック通知によってトリガーされる関数

すべてのパラメータの機能は、対応する詳細情報プロパティとまったく同じです。

GM_setClipboard(data、info)

データをペーストボードにコピーします。パラメータ情報は、{type: ‘text’、mimetype: ‘text / plain’}などのオブジェクト、または文字列テキスト、htmlにすることができます。

GM_info

スクリプトとTMの情報を取得します。データ構造は次のとおりです。

tampermonkeyは、メタデータを保存するこの方法をサポートしています。 TMは、スクリプトがこの互換性オプションを有効にする必要があるかどうかを自動的に検出しようとします。