人気のあるブラウザーのインスタント拡張機能のレシピ

0147 (1)

すべての(可能であれば)人気のあるブラウザー用の単純な拡張機能を作成するという問題が発生しました。 拡張機能のアクティビティは、ドキュメントの本文にJavaScriptを挿入することです。

医師がjavascript注射を処方


簡単に思えますが、ブラウザの行でコードを実行します。

  1. javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
  2. javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
  3. javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
  4. javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
  5. javascript : var s = document. createElement ( 'script' ) ; s. type = 'text/javascript' ; document. body . appendChild ( s ) ; s. src = 'script.js' ; void ( 0 ) ;
しかし、スクリプトが別のサイトのすべてのページを処理する場合はどうでしょう。 新しいページに移行するたびに、ユーザーにインジェクションコードのタブを常にクリックさせないでください。 単純な解決策の素朴な検索は失敗しました。
多くのブラウザ用の拡張機能を書くのが一番怖かったのですが、どうしたらいいか、最も人気のあるものを思い出し始めました。
「FirefoxとChromeに問題はないはずです」と私は思いました。

Google Chrome


Chromeの拡張機能は1時間で作成されました-公式サイトの多くのドキュメント、多くの例。 一般的に、開発者にとっての楽園です。

例とガイド

background.htmlからのフラグメント

  1. 関数 onRequest ( tabId 、 changeInfo 、 tab ) {
  2. if ( changeInfo。status == 'complete' ) {
  3. クロム。 タブ 。 executeScript ( tabId 、 { code : "javascriptのないコード:" } ) ;
  4. } ;
  5. } ;
  6. クロム。 タブ 。 onUpdated 。 addListener ( onRequest ) ;

すべてがシンプルで上品になりました。 ドキュメント本文に直接挿入する

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


All Articles