js如何判斷是否在iframe中及防止網(wǎng)頁被別站用iframe嵌套
1. js如何判斷是否在iframe中
Js代碼
//方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert('在iframe中'); } //方式二 if (window.frames.length != parent.frames.length) { alert('在iframe中'); } //方式三 if (self != top) { alert('在iframe中'); }
2. 防止網(wǎng)頁被別站用 iframe嵌套
將下面的代碼加到您的頁面 <head></head> 位置即可:
Js代碼
<script language="javascript"> <!-- if (top.location != location) { top.location.href = location.href; } //--> </script> //或 <script language="javascript"> if(self!=top){top.location.href=self.location.href;} </script>
這個就能讓別人無法用iframe嵌套你網(wǎng)站的任何頁面,實現(xiàn)的效果是:輸入盜鏈你網(wǎng)站的那個地址后會自動跳到你的網(wǎng)站。
不可靠的原因:
當(dāng)別人用如下類似代碼做IFRAME嵌套調(diào)用時,就可能躲過你的頁面的javascript代碼。
Js代碼
<iframe src="你的頁面地址" name="tv" marginwidth="0" marginheight="0" scrolling="No" noResize frameborder="0" id="tv" framespacing="0" width="580" height="550" VSPACE=-145 HSPACE=-385></iframe> <script language="javascript"> var location=""; var navigate=""; frames[0].location.href=""; </script>
2.最可靠的方法:
為了徹底防止別人用IFRAME框架嵌套調(diào)用自己的網(wǎng)頁,如下方法是最可靠的.
這里賦值為空頁面,也可賦值為你的頁面的URL地址.
Js代碼
<script language="javascript"> if(top != self){ location.href = "about:blank"; } </script>
還有一個完全屏蔽被iframe的方法就是添加:
Html代碼
header("X-Frame-Options: deny"); header("X-XSS-Protection: 0");
這個也是加載iframe是產(chǎn)生錯誤“Load denied by X-Frame-Options: http://localhost/××××.php does not permit framing.”的原因!
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- JS實現(xiàn)點擊網(wǎng)頁判斷是否安裝app并打開否則跳轉(zhuǎn)app store
- javascript判斷網(wǎng)頁是關(guān)閉還是刷新
- JS判斷網(wǎng)頁廣告是否被瀏覽器攔截過濾的代碼
- js判斷當(dāng)頁面無法回退時關(guān)閉網(wǎng)頁否則就history.go(-1)
- javascript判斷是手機還是電腦訪問網(wǎng)頁的簡單實例分享
- javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁的高度、寬度等
- 借助javascript代碼判斷網(wǎng)頁是靜態(tài)還是偽靜態(tài)
- js判斷是否是移動設(shè)備登陸網(wǎng)頁的簡單方法
- 通過JS判斷網(wǎng)頁是否為手機打開
相關(guān)文章
JSON.parse處理非標(biāo)準(zhǔn)Json數(shù)據(jù)出錯的解決
這篇文章主要介紹了JSON.parse處理非標(biāo)準(zhǔn)Json數(shù)據(jù)出錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令
這篇文章主要介紹了JS變量中有var定義和無var定義的區(qū)別以及es6中l(wèi)et命令和const命令,需要的朋友可以參考下2017-02-02小程序websocket心跳庫(websocket-heartbeat-miniprogram)
這篇文章主要介紹了小程序websocket心跳庫(websocket-heartbeat-miniprogram),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02Layui表格行內(nèi)動態(tài)編輯數(shù)據(jù)
本文主要介紹經(jīng)典前端框架 layui 中的動態(tài)表格數(shù)據(jù)操作,結(jié)合 JQuery 動態(tài)編輯單元格中的數(shù)據(jù),具有一定的參考價值,感興趣的可以了解一下2021-08-08