1

私はRailsアプリを持っています。

link_to 'Show', %Q[javascript:self.window.open('http://somelink.com', 'width=700,height=550,resizable=yes,scrollbars=yes,toolbar=yes,status=yes').focus()]

リンクをクリックすると、ボタンがあるポップアップ ウィンドウが開き OKます。ユーザーがOKボタンをクリックすると、ポップアップは閉じられると想定されます。このボタンは Google Chrome では正常に機能しますが、Firefox では機能しません。Firebug を使用してデバッグすると、ポップアップ ウィンドウの関数がアクセス許可を拒否されることがわかります。ポップアップ ウィンドウのコードは次のとおりです。

function onclick(event) {
 opener.top.location.reload();
 self.close();
}

エラーメッセージは次のとおりです。Permission denied to access property 'reload'

私は周りを見回していましたが、これを修正する方法を見つけることができませんでした。どうやら、ポップアップ ウィンドウのコードにアクセスできないようです。

4

1 に答える 1

2

opener.top同じ「オリジン」(通常は同じドメイン) にあるか? Chromeで動作するので、そう思います。おそらく、この回避策が機能します。

コールしopener.please_reload_for_me()ます。

オープナーフレームの機能は次のとおりです。

function please_reload_for_me() {
    window.top.reload();
}

topしたがって、基本的にオープナー フレームへのアクセスを委譲します。

于 2012-07-10T23:42:19.803 に答える