元のページで関数を呼び出す 1 つの方法は次のとおりです。
location.href = "javascript:void(myFunction());";
少し醜いです。GreaseMonkeyが提供する unsafeWindow もありますが、作成者は使用しないようにアドバイスしています。
unsafeWindow.myFunction();
きれいに見えますが、影響を理解していることを確認してください。マニュアルから:
unsafeWindow は、Greasemonkey の XPCNativeWrapper ベースのセキュリティ モデルをバイパスします。これは、悪意のある Web ページが、グリースモンキー スクリプト (Web ページで実行される通常の Javascript よりも高い権限で実行される) に作成者が行うことを行わせるような方法でオブジェクトを変更できないようにするために存在します。またはユーザーが意図していませんでした。したがって、ユーザー スクリプトは、unsafeWindow のプロパティに応じて、またはその他の方法で呼び出しを行うことを避ける必要があります。特に、ページの作成者がこの方法で環境を破壊した可能性がある @include * を含むページなど、任意の Web ページに対してスクリプトが実行される場合は特にそうです。
つまり、unsafeWindow を使用すると、スクリプトは元のページ スクリプトが使用できる権限を昇格させます。