3

明確にするために:私は自動更新を行うつもりはありません。更新されたスクリプトがあることをユーザーに知らせ、最新バージョンを入手するためのリンクをユーザーに提供したいと思います。

Firefoxでこれを行う方法はいくつかありますが、それらはすべてChromeでサポートされていないGreasemonkey固有の機能を使用しているようです。

私は今日これを研究するのに良い4時間を費やしました、そして今私は助けを求めてSOコミュニティを見ています。

4

2 に答える 2

3

このリンクをコメントに投稿してくれた Yi Jiang に感謝します。そのスクリプトがなくなった場合に備えて、ここにコンテンツを投稿します。

// ==ユーザースクリプト==
// @name SelfUpdatingScript
// @バージョン 1.0.0
// @namespace Benjol (http://stackoverflow.com/users/11410/benjol)
// @description 自己更新スクリプトのテンプレート スクリプト
// @credits http://stackoverflow.com/users/115866/balpha への称賛
// @include https://gist.github.com/*
// ==/ユーザースクリプト==

関数 with_jquery(f) {
  var script = document.createElement("スクリプト");
  script.type = "text/javascript";
  script.textContent = "(" + f.toString() + ")(jQuery)";
  document.body.appendChild(スクリプト);
};

with_jquery(関数 ($) {
  $(関数 () {
    //これはどのように作動しますか?
    // 1. インストールされたスクリプトが最初にロードされ、ローカルの VERSION 変数に現在インストールされているバージョン番号が設定されます
    // 2. window["selfUpdaterCallback:" + URL] が定義されていないため、これはスキップされます
    // 3. updateCheck() が呼び出されると、window["selfUpdaterCallback:" + URL] が定義され、VERSION にインストール済みのバージョン番号が保持されます (クロージャー)
    // 4. updateCheck() は、スクリプトの外部バージョンをページ ヘッダーに読み込みます
    // 5. スクリプトの外部バージョンがロードされると、外部 (潜在的に新しい) バージョン番号を使用して独自のローカル VERSION を定義します。
    // 6. window["selfUpdaterCallback:" + URL] が定義されたので呼び出され、外部バージョン番号が渡されます
    // 7. 外部バージョン番号 (ver) がインストール済みバージョン (VERSION) より大きい場合、通知が呼び出されます
    var バージョン = 1.0; // 1.13 より; 1.02 の場合は、そう言ってください!)
    var URL = "https://gist.github.com/raw/874058/selfupdatingscript.user.js"; // バージョン)
          通知者(バージョン、バージョン、URL);
      }

      // それをスクリプトタグにします。SO では、前に大きなサインを表示することはできません。
      /*$(' script />').attr("src", URL).appendTo("head");*/
    }

    // このコメントの後にカスタム スクリプトを挿入します
    // このコードを次の方法でカスタマイズします
    // - 独自のカスタム通知を表示するようにコールバックを変更します
    // - ページの読み込みごとに更新を確認する頻度を下げることができます
    updateCheck(関数 (新しいバージョン、古いバージョン、URL) {
      alert("SelfUpdatingScript の新しいバージョン (" + newver + "、現在のバージョンは " + oldver + ") は、ここからダウンロードできます: " + url);
    });
  });
});
于 2011-04-18T02:53:49.917 に答える
2

Chromeで実行されているグリースファイアのアップデータスクリプトを見つけました。それが役立つかどうかわからない。 http://code.google.com/p/greasefire/source/browse/chrome/updater.js?r=55

于 2011-04-10T02:08:33.390 に答える