2つのスクリプトがあります。それらを同じ名前空間(@namespace
フィールド)に配置します。
他の人とインタラクティブになってほしいです。
具体的には、スクリプトARunByDefault
を123に設定します。スクリプトBにチェックするかどうかを確認してから、タイムアウトなどを使用しRunByDefault==123
てスクリプトAにスクリプトBの関数を呼び出します。
どうすればよいですか?スクリプトをマージしたくありません。
2つのスクリプトがあります。それらを同じ名前空間(@namespace
フィールド)に配置します。
他の人とインタラクティブになってほしいです。
具体的には、スクリプトARunByDefault
を123に設定します。スクリプトBにチェックするかどうかを確認してから、タイムアウトなどを使用しRunByDefault==123
てスクリプトAにスクリプトBの関数を呼び出します。
どうすればよいですか?スクリプトをマージしたくありません。
スクリプトは相互に直接対話することはできず、スクリプト名の競合// @namespace
を解決するためだけのものです。(つまり、名前空間が異なる場合にのみ、「LinkRemover」という名前の2つの異なるスクリプトを使用できます。)
個別のスクリプトは、以下を使用して情報を交換できます。
localStorage
-同じように機能します-ドメインのみそれでおしまい。
同じスクリプトの異なる実行中のインスタンスは、とを使用GM_setValue()
して情報を交換できGM_getValue()
ます。この手法には、クロスドメインであり、簡単で、ターゲットWebページからは見えないという利点があります。
Tampermonkeyでのクロスタブ通信のこの実用的な例を参照してください。
Chromeでは、Chromeのみで、非標準のFileSystemAPIを使用してローカルファイルにデータを保存できる場合があります。しかし、これはおそらく、ユーザーがすべてのトランザクションをクリックする必要があります-それが機能したとしても。
もう1つのオプションは、ヘルパーとして機能し、ファイルIOを実行する拡張機能(アドオン)を作成することです。通常は、を介して対話しますpostMessage
。
実際には、実際にデータを共有する必要のあるスクリプトをマージするだけで簡単でクリーンな状況に遭遇したことはありません。
また、スクリプトはコードを共有できませんが、JSをターゲットページに挿入し、両方がそれにアクセスできます。
最後に、AFAICTのスクリプトは、並行してではなく、常に順次実行されます。ただし、「ユーザースクリプトの管理」パネルから実行順序を制御できます。