2011-07-11 39 views
6

鏈接到我的站點保持我的網站的框架,所以我增加了以下JavaScript來我的頁面:如何在不破壞瀏覽器後退按鈕的情況下打破框架?

if (window.top.location != window.location) { 
    window.top.location = window.location 
} 

現在,如果我獲得通過有問題的網站我的網站,我的網站成功地跳出了框架。但後退按鈕打破了!後退按鈕將用戶發送到我的站點的框架版本,該站點立即再次發生,並將他返回到他想要離開的地方!有沒有簡單的方法來解決這個問題?

回答

10
window.top.location.replace(window.location); 

替換方法專門用於此目的。它將歷史狀態中的當前項目替換爲新目標,以便後退按鈕不會通過您不想要的目的地。

1

另一種解決方案是在新窗口中打開你的網站中的iFrame現場留下一個友好的信息:

if (parent.frames.length) 
{ window.open("mySite.htm", "MySite"); 
    location.href= "framedMessage.htm"; 
} 

framedMessage.htm包含一些友好的/警告消息。

2

jfriend00的回答確實是對的。使用window.location.replace方法將不會影響後退按鈕。

但是,我只想指出,只要你想停止一個頁面被陷害,你應該做的不僅僅是這些!有幾種方法可以防止像這樣的簡單腳本脫離框架,這種框架可以在許多現代瀏覽器中使用。也許你可以禁用頁面,顯示一個鏈接到整個頁面的消息,類似的東西。您也可以使用X-Frame-Options響應標頭,告訴瀏覽器不要在框架中顯示頁面。如果你不採取這些措施,你的網站可能會被點擊劫持。

相關問題