制御できないページ(app.htmlなど)へのiframeを含むHTMLページ(welcome.htmlなど)があります。ユーザーはiframe内のアプリを使用していくつかのアクションを実行し、[送信]をクリックします。これを行うと、新しいページ(thanks.jspなど)に移動し、iframe内に読み込まれます。送信がクリックされた後、thanks.jspをiframeではなくフルフレームにロードするように強制する方法はありますか?覚えておいてください、私はその送信ボタンまたはapp.htmlの背後にあるロジックを制御できません。ただし、welcome.htmlとthanks.jspは制御できます。可能であれば、HTMLやJavaScriptを使い続けたいと思います。前もって感謝します。
A Salim
質問する
3956 次
2 に答える
5
失敗した場合に備えて、ベースターゲットとともにフレームバスターを使用することをお勧めします。
初め:
thanks.jsp
postリクエストを介してリクエストされた場合-リダイレクトして、getリクエストへの応答としてページを表示します。
それで:
フレームバスターJavaScriptを含める:
<script type="text/javascript">
if (self != top) { top.location.replace(location); }
</script>
ついに:
ユーザーがJavaScriptを有効にしていない場合は、次のことを行う必要がある場合よりも、フレーム内に留まらないようにしてください。
<base target="_top">
于 2008-10-11T17:39:37.673 に答える
2
thanks.jsp
次のJSを入力できます。
// Parent window not the same as this one
if (self !=top)
{
top.location.href = self.location.href;
}
これは、同一生成元ポリシーthanks.jsp
により、フレームを含む元のページと同じサーバー上にある場合に機能します。
上記のコードは、現在のページのURLをチェックし、次にそれが実行されているページの1つ(thanks.jsp
)をチェックします。それらが一致しない場合は、thanks.jsp
URLに送信されます。このメソッドthanks.jsp
は、が静的ページの場合は正常に機能しますが、postdataなどを伝達しません。
于 2008-10-11T17:41:17.077 に答える