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

前の記事で述べたように、ユーザースクリプトはすべての最新のブラウザーでサポートされています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。 クロスドメインリクエスト



All Articles