1

次のコードで FireFox で GreaseMonkey を使用しています

if (window.opener) 
{
    alert(window.opener.location.href);
}

ただし、Permission Deniedおそらくクロスドメイン ポリシーが原因で、エラーが発生します。この保護を克服するにはどうすればよいですか?

4

1 に答える 1

1

ウィンドウがそのオープナーとは異なるドメインにある場合、これを行うことはできません。 プレーンな JavaScript の場合、この情報をブロックすることはセキュリティ保護と見なされます。

Greasemonkey の場合、セキュリティ上の問題は少ないかもしれませんが、Greasemonkey の開発者はその機能を追加していません。Greasemonkey は単純な JavaScript であり、選択された制限付きの拡張機能が追加されています。

これについて機能要求を開くことはできますが、両方について適切なケースを作成できない限り、承認される可能性は低いです: これがどのように役立つか、および不注意な GM ユーザーが "pwned" されることはありません.


それまでの間、Greasemonkey のソース コードをいつでもフォークして、ドメイン間の障壁を打ち破る独自のバージョンを構築できます。

または、実際に何をしようとしているのかによっては、2 つ以上のスクリプト インスタンスの通信を伴う回避策がある場合があります。回避策については、新しい質問を開き、シナリオを詳細に説明してください。

于 2013-10-06T22:04:32.337 に答える