3

Greasemonkey スクリプトを使用して、他のサイトの JS スクリプトをページに追加して実行することはできますか?

4

2 に答える 2

7

スクリプト要素を作成してドキュメントに追加するだけです。

// ==UserScript==
// @name       My Fancy New Userscript
// @description  enter something useful
// @match      http://*/*
// ==/UserScript==

(function () {
    var scriptElement = document.createElement( "script" );
    scriptElement.type = "text/javascript";
    scriptElement.src = "url to your script";
    document.body.appendChild( scriptElement );
})();

スクリプトを実行したいだけなら、これで十分です。ユーザースクリプトで使用したいjQueryのようなライブラリの場合、注意が必要です。私が知っている2つの方法があります:

  • 1つは、greasemonkeyのrequireタグを使用することです。
  • もう1つは、上記のようなスクリプト要素を同じように作成する必要がありますが、ロードされるのを待つ必要があるため、ライブラリから変数にアクセスscriptElement.onload = function () {}するためにを使用する必要があります。unsafeWindow

スクリプトがサイトからカプセル化されるのはあなただけなので、これが純粋なグリースモンキースクリプトである場合は、最初の方法をお勧めします。

于 2013-01-13T00:06:00.597 に答える
0

はい、たとえば次のようにできます。

let script = document.createElement('script');
script.src = "http://example.com/somescript.js";
document.body.appendChild(script);  // execute the script
document.body.removeChild(script);
于 2013-01-12T23:51:56.140 に答える