1

制御できないページ(app.htmlなど)へのiframeを含むHTMLページ(welcome.htmlなど)があります。ユーザーはiframe内のアプリを使用していくつかのアクションを実行し、[送信]をクリックします。これを行うと、新しいページ(thanks.jspなど)に移動し、iframe内に読み込まれます。送信がクリックされた後、thanks.jspをiframeではなくフルフレームにロードするように強制する方法はありますか?覚えておいてください、私はその送信ボタンまたはapp.htmlの背後にあるロジックを制御できません。ただし、welcome.htmlとthanks.jspは制御できます。可能であれば、HTMLやJavaScriptを使い続けたいと思います。前もって感謝します。

4

2 に答える 2

5

失敗した場合に備えて、ベースターゲットとともにフレームバスターを使用することをお勧めします。

初め:

thanks.jsppostリクエストを介してリクエストされた場合-リダイレクトして、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.jspURLに送信されます。このメソッドthanks.jspは、が静的ページの場合は正常に機能しますが、postdataなどを伝達しません。

于 2008-10-11T17:41:17.077 に答える