首頁  >  文章  >  web前端  >  js實作網頁防止被iframe框架嵌套及幾種location.href的區別

js實作網頁防止被iframe框架嵌套及幾種location.href的區別

高洛峰
高洛峰原創
2017-01-12 10:58:341536瀏覽

首先我們了解:window.location.href、location.href、self.location.href、parent.location.href、top.location.href他們的區別與聯繫,簡單的說:幾種location.href的區別js實作網頁被iframe框架功能 
"window.location.href"、"location.href"、"self.location.href"是本頁跳轉 
"parent.location.href"是上一層頁跳到 
"top.location.href"是最外層的頁面跳轉 

舉個例子說明(如上圖): 
如果A,B,C,D都是普通頁面,D是C的iframe,C是B的iframe,B是A的iframe, 
如果D中js這樣寫: 
"window.location.href"、"location.href":D頁跳到 
"parent.location.href":C頁跳轉 
" top.location.href":A頁跳轉 

如果D頁有form的話: 

: form提交後D頁跳轉 
: form提交後彈出新頁 
: form提交後C頁跳轉 
:form提交後A頁面跳轉 

關於頁面刷新,D 頁面中這樣寫: 
"parent.location .reload();": C頁面刷新(當然,也可以使用子視窗的opener 物件來取得父視窗的物件:window.opener.document.location.reload(); ) 
"top.location.reload() ;": A頁刷新 

現在回頭看看,js實作網頁防止被iframe框架功能就很簡單了。假設frame.html檔案中框架了content.html文件,那麼思路是這樣的:在content.html中加入js檢測自己本身top.location.href位址,是否為top.location.href位址。如果是則沒被嵌套,如果否的話即被嵌套了,這是我們可以提示一下。
<script language="javascript"> 
if(top.location!==self.location){ 
WarningTxt1 = "content页面被iframe了!"; 
WarningTxt2 = "我们跳出iframe,直接访问content页面吧!"; 
alert(WarningTxt1); 
alert(WarningTxt2); 
top.location.href=self.location.href; 
} 
</script>

更多js實作網頁防止被iframe框架嵌套及幾種location.href的區別相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn