2008-10-11 134 views
1

我有一個HTML頁面(稱爲welcome.html),其中包含一個iframe到頁面,我無法控制(比如app.html)。用戶使用iframe中的應用程序執行一些操作,然後單擊提交。一旦他們這樣做,他們將被帶到一個新的頁面(稱爲thanks.jsp),該頁面加載在iframe中。有一種方法,我可以強制thanks.jsp加載全幀,而不是iframe一旦提交被點擊?請記住,我無法控制提交按鈕或app.html背後的邏輯。不過,我確實可以控制welcome.html和thanks.jsp。如果可能的話,我想堅持使用HTML和/或JavaScript。先謝謝你。強制iframe加載全幀

回答

5

你可能想要使用一個framebuster,如果它失敗的話還有一個基準目標。

第一:

如果通過POST請求,請求thanks.jsp - 重定向所以你目前的頁面作爲響應於獲取請求。

然後:

包括framebuster的JavaScript:

<script type="text/javascript"> 
    if (self != top) { top.location.replace(location); } 
</script> 

最後:

如果用戶不啓用JavaScript,確保他們不會停留在框架不再那麼他們必須:

<base target="_top">
2

thanks.jsp你可以把以下JS:

// Parent window not the same as this one 
if (self !=top) 
{ 
    top.location.href = self.location.href; 
} 

這將工作前提是你得thanks.jsp在同一臺服務器包含幀的原始頁面上,由於same origin policy

上面的代碼檢查頁面你,然後在頁面的一個它的執行上(thanks.jsp)的URL - 如果他們不匹配你發送到thanks.jsp網址。當thanks.jsp是一個靜態頁面時,此方法可以正常工作,但不會在它後面傳遞postdata等。