Greasemonkey: ユーザーはスクリプトの実行順序を制御できる必要があります

作成日 2017年11月15日  ·  10コメント  ·  ソース: greasemonkey/greasemonkey

「実行順序」の並べ替えは、従来のフルタブの「管理」ダイアログで最も見逃している機能です。
現在(GM 4.0では)、スクリプトはポップアップにリストされているとおりに、つまりアルファベット順に実行されているようです。
この並べ替えは使用できなくなったため、ユーザースクリプトの競合をすばやく解決する方法はありません。


参考までに、(現在は削除されている) 「スクリプトオーダー」wikiページから引用し

_スクリプトの順序_

_スクリプトは次の順序で表示できます:_

  • _Status-スクリプトは、アクティブ化ステータス(有効または無効、次に名前)の順に並べられます。_
  • _Name-スクリプトは、ステータスに関係なく、名前のアルファベット順に並べられています。_
  • _実行順序-スクリプトは実行インデックス

_この最後の順序は、互いに競合するユーザースクリプトにとって重要です。 スクリプトの順序を変更することで、競合を解決できます。 ユーザースクリプトを右クリックして、アクションの1つを選択することで順序を変更できます: Execute firstExecute soonerExecute laterまたはExecute last ._

最も参考になるコメント

これは確かに4.xから欠落している3.xの機能です。

特定の機能/ UIを約束するつもりはありませんが、特定の順序で実行する必要のある2つのスクリプトをインストールできると便利です。

全てのコメント10件

これは確かに4.xから欠落している3.xの機能です。

特定の機能/ UIを約束するつもりはありませんが、特定の順序で実行する必要のある2つのスクリプトをインストールできると便利です。

スクリプトソースに// <strong i="5">@priority</strong> (int)機能がある場合、または優先順位がリードを逃す可能性があるため、ランレベルと呼ぶ必要がある場合はどうなりますか?
各ティアは、非同期機能を介して、またはほぼ同時に開始できます
おそらく負の値もサポートする必要があります

ある種の自然な順序があるUNIXランレベルとは異なり、スクリプトの実行順序はより恣意的であるように思われます。 ユーザー次第だと思います。 スクリプト内のタグに由来するデフォルトの優先順位は悪い考えではありませんが、以前のバージョンのGMにあったように、順序をオーバーライドする機能が必要です。

私はそれに同意しますが、必要に応じて、ソースからのスクリップのランレベル/優先度を編集することができます。 私はそれを実装する方が簡単だと思います、その時点でuiはそれの周りに構築される可能性があります

これにも投票してください。 私のスクリプトのいくつかは、特定の順序で実行する必要があり、時間内に実行されない場合は中断します。
私も、この順序を決めるのはユーザー次第だと思います。 UIは、スクリプトから一種の「order」/「runlevel」ディレクティブを参照できますが、最後の単語はユーザーのものである必要があります。 1st-2ndまたは2nd-1stを実行すると、どちらもページのDOMを参照しているため、意図的に異なる動作をするスクリプトのペアを想像することもできます。

私見では、ランレベルはここで必要なものではありません。
ほとんどの場合、スクリプトBの前にスクリプトAを実行するだけだと思います。
これは(相対的な)制限です。 ランレベルは絶対的な尺度です。 十分ではありません。
また、制限は非常にまばらです。 必要なのは「早い」/「遅い」ものだけです。
そして多分、ただ快適さのために、「最初」/「最後」...

これは(厳密には)スクリプト自体のプロパティではないため、ソースにベイクされたヘッダー@tagであってはなりません。 これは、スクリプトのいくつかの組み合わせの症状であり、一方の変更によって他方が破損するため(ただし、その逆はありません)、もう一方を最初に実行する必要があります。

この機能はいつの日かまだありますか? 4.xがリリースされて以来、私はそれを見逃しており、当面の間、正しい順序で実行するために、スクリプトでいくつかの不十分な回避策を実行する必要がありました。

...いくつかの悪い回避策..。

回避策は何でしたか、そしてなぜそれは貧弱でしたか?

1つのスクリプトで非表示のdivを作成し、もう1つのスクリプトでタイマーを設定したことを覚えています。これは、divがまだ存在するかどうかを確認するためのものでした。 それともそれは愚かでしたか?

Greasemonkeyでグローバル変数を設定し、他のスクリプトからアクセスできるとは思いませんか? それでもタイマーをセットする必要がありますね。

このページは役に立ちましたか?
0 / 5 - 0 評価