ユーザースクリプト もっと深く

前の記事で述べたように、ユーザースクリプトはすべての最新のブラウザーでサポートされていますIE7以上で何らかの形でサポートされています。

この記事では、ブラウザについて説明します



エンジンについて一言


ユーザースクリプトのサポートの品質は、ブラウザーによってレベルが異なります。 ユーザースクリプトのサポートは、 FirefoxおよびChromeブラウザーで最適に行われます。
これらのブラウザは、ユーザースクリプトを管理するためのユーザーフレンドリーなインターフェイスを提供します。

ユーザースクリプトに対する最も厳しい制限は、 Chromeによって課されています。 ただし、これらの制限のほとんどすべては、スクリプトを単純な拡張にパックすることで回避されます。 このプロセスの詳細については、 次の記事で説明します

次に、個々のブラウザーでのユーザースクリプトのサポートについて詳しく説明します。

Firefoxでのサポート


Mozilla Firefoxは、 GreaseMonkey拡張機能(ロシア語のslang- monkey )またはScriptishをインストールした後のユーザースクリプトをサポートします。
拡張機能をインストールすると、firefoxは本当に強力なユーザースクリプトサポートを取得します。
以下の情報は主にGreaseMonkeyに適用されます(この拡張機能が最初でした)。

インストール:ユーザースクリプトは、スクリプトファイルをブラウザーにドラッグアンドドロップするだけでインストールされます。
拡張機能: GreaseMonkeyScriptish
管理:拡張機能によって追加されたメニューでユーザースクリプトを無効にして削除できます。
機能:

GreaseMonkeyは、いわゆるGM API-ユーザースクリプトに機能を追加するJavaScript関数のセットを追加します。
GM APIが提供する最もリクエストの多い機能のうち、言及する価値があるものは次のとおりです。
  1. unsafeWindowページの「ネイティブウィンドウ」のオブジェクト(ページ上の関数を置き換えたり、ページ上の既存のライブラリを使用したりできます)
  2. クロスドメインHttpXmlRequest: GM_xmlhttpRequest
  3. globalStorageの類似物(ドメインバインディングのないlocalStorage): GM_setValueGM_getValueおよびGM_deleteValue

GM APIおよびGreaseMoneky機能の詳細については、 http: //wiki.greasespot.netをご覧ください

歴史的に、すべてのユーザースクリプトはFirefoxブラウザー用に記述されていたのは、まさに便利なプラグインが利用できるからです。
これは、ユーザースクリプトをサポートするすべてのブラウザが、GreaseMonkeyメタデータ解析仕様の基本的なルールに追加に従うという事実によるものです。
つまり、GreaseMonkeyで作成されたすべてのスクリプトは、ユーザースクリプトをサポートするブラウザーにインストールされ、実行されます(最小限の変更で)。

残念ながら、Firefox以外のブラウザはGM APIを提供していません。 この悲しい事実により、拡張機能または追加のユーザースクリプトを通じてGM APIエミュレーションを使用する必要があります。

「ゼロから」ユーザースクリプトを開発する場合、GM APIエミュレーションを放棄し、自分の制作の「バイク」を使用することが望ましいと考えています。 これにより、ユーザースクリプトの依存関係の数を減らすことができ、その結果、 1つのファイル概念のフレームワーク内で開発できます。1つのファイルを変更するだけで済みます。 ユーザーは、ユーザースクリプトを実行するために1つのファイルのみを必要とします。

単一ファイルの概念により、ユーザースクリプトのサポートとクロスブラウザー開発の複雑さを大幅に減らすことができます

Chromeサポート


Google Chromeはネイティブスクリプト、つまり プラグイン/拡張機能は必要ありません。 ユーザースクリプトを拡張機能にパックすることができます( 必要な場合があります )。

インストール:ユーザースクリプトは、スクリプトファイルをブラウザーにドラッグアンドドロップするだけでインストールされます。
拡張機能:必要ありません。 拡張機能Tampermonkeyがあり、スクリプトでの作業を簡単にします。
管理:拡張機能などのユーザースクリプトを無効にして削除できます( 設定->ツール->拡張機能 )。
機能:

拡張機能は、ブラウザ自体によってパッケージ化されたアーカイブです( 設定->ツール->拡張機能->拡張機能のパック )。
ユーザースクリプトファイルに加えて、拡張子には以下が含まれている必要があります。

ユーザースクリプトを拡張機能にパックすると、 Google Chromeがユーザースクリプトに課す多くの制限が回避されます。

重要:実際、拡張機能とユーザースクリプトは異なる概念です。 また、問題に厳密に取り組む場合は、Chrome用のシンプルな拡張機能の開発について話す価値があります。
ユーザースクリプトが非標準の「重い」機能を必要とする場合、拡張機能でパッケージ化する必要があります。
ユーザースクリプトを拡張機能にパックするには、追加のアクションを1回実行する必要があります。 すべてのその後の開発は単一ファイルの概念のフレームワークの中で実行されるでしょう。

Operaでのサポート


Operaはユーザースクリプトをネイティブにサポートしていますが、スクリプトを管理するための使いやすいインターフェースは提供していません。 このようなインターフェイスは、UJS Manager拡張機能で利用できます。

拡張機能: UJSマネージャーUserJSマネージャー
インストール:ユーザースクリプトは、ユーザーが構成したユーザースクリプトフォルダーにインストールされます。 その場所は、ブラウザの設定で設定できます: 設定->一般設定->詳細->コンテンツ-> JavaScriptのカスタマイズ 。 ユーザースクリプトフォルダーにスペースを含めることできませ
管理:ユーザースクリプトフォルダーからスクリプトファイルを削除または移動することにより、ユーザースクリプトを無効にすることができます。
機能:

IEでのサポート


IE7、IE8、IE9は、 Trixieプラグインの使用時にユーザースクリプトをサポートします。
さらに、より高度なIE7Proプラグインがあります。 ユーザースクリプトのサポートに加えて、IE7Proには他にも多くの役に立たない機能があります。

重要: IE7Proで追加の「Pribluda」を無効にしない場合、特に重いページでは、プラグインによってブラウザーの速度がかなり低下する可能性があります。

拡張機能: TrixieIE7Pro
インストール:ユーザースクリプトは、Trixieユーザースクリプトフォルダー(C:/ Program Files / Bhelpuri / Trixie / Scripts)またはIE7Pro (C:/ Program Files / IEPro / userscripts)にインストールされます。
管理:各プラグインには、ユーザースクリプトを管理するためのユーザーインターフェイスがあります。
機能:


ご覧のとおり、IEでスクリプトを実行するのは面倒です。 そのような機会がまったく存在することを嬉しく思う。

重要:両方のプラグインは、互いに干渉することなく、同時にシステムに存在できます。

重要:上記を考慮すると、私は常にユーザーにTrixieを使用することをお勧めします。

Safariでのサポート


残念ながら、私はこのブラウザで作業することができませんでした。 コメントの説明に喜んでいます!
SafariにはSIMBLGreaseKitプラグインが必要だという噂があります。

Mobile Safariおよびその他のブラウザーでのサポート


人気の低いブラウザーやモバイルブラウザーではユーザースクリプトがサポートされていないため、ユーザースクリプトはブックマークレットの形式で提供する必要があります
したがって、この場合はメタデータは不要であり、更新のたびにブックマークレットを手動で起動する必要があります。

最後に



単一のファイルの概念を順守する場合、作成プロセスは次のパスに沿って進みます。
  1. テンプレートを取ります。
  2. コードとメタデータを追加します。
  3. Chrome拡張機能用のフォルダーとファイルを作成します。
  4. Chromeの拡張機能をパックし、IE7Proのファイル名を変更します。
  5. ユーザースクリプト/拡張機能をユーザーに配布します。
  6. ...
  7. 手のバグを修正します。
  8. 後藤4



記事のリスト:
  1. ユーザースクリプトの書き方を学ぶ
  2. » ユーザースクリプト。 もっと深く行きます。
  3. ユーザースクリプト Chromeのユーザースクリプトをパックします
  4. Usersctripts。 クロスドメインリクエスト

Source: https://habr.com/ru/post/J129454/


All Articles