2

Greasemonkey では、グローバルalert()関数を次のように書き換えることができます。

window.alert = function() {...}

どこでも機能します。
ただし、Tampermonkey (Chrome) では、独自のスクリプトでのみ機能します。

なんで?そして、それをグローバルに機能させることはできますか?

4

1 に答える 1

3

実際、Greasemonkey でしか機能しない場合もあります。許可モードは、---none私は反対することをお勧めします。あなたが発見したように、誤ってそのモードをトリップすると、この質問の範囲を超えた他の罪とともに、移植性のないスクリプトが作成されます。

このコードを Tampermonkey (および Greasemonkey も) で機能させるには、次のようにunsafeWindowを使用します。

// ==UserScript==
// @name     _YOUR_SCRIPT_NAME
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @grant    unsafeWindow
// ==/UserScript==

unsafeWindow.alert = function() {...}


または、この回答に示されているようにスクリプト インジェクションを使用します。



@grant unsafeWindowディレクティブは、Greasemonkey 用です。サンドボックスを復元し、の使用を許可しますunsafeWindow。これにより、同じスクリプトが Tampermonkey と Greasemonkey の両方で同じように機能します。

于 2013-04-07T07:24:05.007 に答える