訂閱本欄目 RSS您所在的位置: 深山工作室 > HTML > 正文

iframe里阻止_blank彈出新窗口的方法

2022/6/8 11:04:34 字體: 瀏覽 2219

近弄個東西,需要用到iframe,但是加載的網頁中有_blank,不能讓他跳出來。
如果想讓目的網址的_blank刪除,這是不可能的。
網上找了很多的資料,要么是跨域不能修改.要么就根本牛頭不對馬嘴


后來,看到了html5里iframe有個叫sandbox的屬性把 iframe 里的網頁給關籠子里的屬性

所以,就來找找這個的用法.


<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
    src="http://www.sc609.com"
    style="border: 0; width:130px; height:20px;"></iframe>


我們在上面的示例中看到了一些可能的沙盒標志,現在讓我們更詳細地研究一下該屬性的內部工作原理。

給定具有空沙盒屬性 ( <iframe sandbox src="..."> </iframe>) 的 iframe,框架文檔將被完全沙盒化,并受到以下限制:

JavaScript 不會在框架文檔中執行。這不僅包括通過腳本標簽顯式加載的 JavaScript,還包括內聯事件處理程序和 javascript: URL。這也意味著將顯示 noscript 標簽中包含的內容,就像用戶自己禁用了腳本一樣。
加框的文檔被加載到一個唯一的原點,這意味著所有的同源檢查都將失??;獨特的起源與其他起源不匹配,甚至它們自己也不匹配。除其他影響外,這意味著文檔無法訪問存儲在任何來源的 cookie 或任何其他存儲機制(DOM 存儲、索引數據庫等)中的數據。
框架文檔無法創建新窗口或對話框(例如,通過window.open或 target="_blank")。
無法提交表格。
插件不會加載。
框架文檔只能導航自己,不能導航其頂級父級。設置window.top.location會拋出異常,點擊鏈接 target="_top"無效。
自動觸發的功能(自動聚焦的表單元素、自動播放視頻等)被阻止。
無法獲得指針鎖。
框架文檔包含的seamless屬性被忽略。iframes
這是非常嚴格的,加載到完全沙盒中的文檔iframe 確實構成的風險很小。當然,它也沒有多大價值:對于一些靜態內容,您可能可以使用完整的沙盒來擺脫困境,但大多數時候您會希望稍微放松一下。

除了插件之外,這些限制中的每一個都可以通過在沙箱屬性的值中添加一個標志來解除。沙盒文檔永遠不能運行插件,因為插件是未沙盒的本機代碼,但其他一切都是公平的游戲:

allow-forms允許表單提交。
allow-popups允許彈出窗口(window.open()、showModalDialog()、target=”_blank”等)。
allow-pointer-lock允許(驚喜?。┲羔樻i定。
allow-same-origin允許文件保持其來源;從中加載的頁面https://example.com/將保留對該來源數據的訪問權限。
allow-scripts允許 JavaScript 執行,也允許特性自動觸發(因為通過 JavaScript 實現它們很簡單)。
allow-top-navigation允許文檔通過導航頂級窗口跳出框架。
考慮到這些,我們可以準確評估為什么我們最終會在上面的 Twitter 示例中使用特定的沙盒標志集:

allow-scripts是必需的,因為加載到框架中的頁面會運行一些 JavaScript 來處理用戶交互。
allow-popups是必需的,因為該按鈕會在新窗口中彈出一個推文表單。
allow-forms是必需的,因為推特表單應該是可提交的。
allow-same-origin是必要的,否則 twitter.com 的 cookie 將無法訪問,并且用戶無法登錄以發布表單。
需要注意的重要一點是,應用于框架的沙盒標志也適用于在沙盒中創建的任何窗口或框架。這意味著我們必須添加allow-forms到框架的沙箱中,即使表單只存在于框架彈出的窗口中。

使用該sandbox屬性后,小部件僅獲得它所需的權限,并且插件、頂部導航和指針鎖定等功能仍然被阻止。我們降低了嵌入小部件的風險,沒有任何不良影響。這對所有相關人員來說都是一場勝利。


參考網址:https://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

相關閱讀
屏幕兩種色彩左右像電影屏幕一樣分開
微信小程序直播組件live-player-plugin(wx2b03c6e691cd7370)
CSS的常用的一些技巧
asp顯示隨機密碼
一行兩列的CSS設置代碼
網頁設計的十要十不要
深山留言板5.0新版
圣誕老人留言板模板
共有0條關于《iframe里阻止_blank彈出新窗口的方法》的評論
發表評論
正在加載評論......
返回頂部發表評論
呢 稱:
表 情:
內 容:
評論內容:不能超過 1000 字,需審核,請自覺遵守互聯網相關政策法規。
驗證碼: 驗證碼 
網友評論聲明,請自覺遵守互聯網相關政策法規。

您發布的評論即表示同意遵守以下條款:
一、不得利用本站危害國家安全、泄露國家秘密,不得侵犯國家、社會、集體和公民的合法權益;
二、不得發布國家法律、法規明令禁止的內容;互相尊重,對自己在本站的言論和行為負責;
三、本站對您所發布內容擁有處置權。

更多信息>>欄目類別選擇
百度小程序開發
微信小程序開發
微信公眾號開發
uni-app
asp函數庫
ASP
DIV+CSS
HTML
python
更多>>同類信息
DW設置之后更好用 DreamweaverCS編輯GB2312與UTF-8文件在代碼視圖中點擊鼠標錯位問題的解決辦法
js指定日期加n天加n月加n年
jquery中動態生成的代碼使用on hover事件時不出現效果
iframe里阻止_blank彈出新窗口的方法
jquery實現下拉加載更多
jquery獲得當前所有input表單數據并進行序列化的各種問題與解決方案serialize與serializeArray的區別分析
更多>>最新添加文章
python里面requests.post返回的res.text還有其它的嗎
aliyun阿里云續費域名優惠口令(注冊、續費都可以使用)
windows7環境下安裝配置jdk
python對微信操作要用到這兩個庫wxpy與itchat
ASP中Utf-8與Gb2312編碼轉換亂碼問題的解決方法頁面編碼聲明
DW設置之后更好用 DreamweaverCS編輯GB2312與UTF-8文件在代碼視圖中點擊鼠標錯位問題的解決辦法
解決國內 github.com 打不開的準確方法
8種Python字符串拼接的方法,你知道幾種
更多>>隨機抽取信息
深山留言板系統(網吧游戲專用) v3.6
CSS中的單位一覽 包括寬度尺寸單位 顏色單位 角度單位
一個利用純java做的非常漂亮的頁面背景花瓣效果
亂涂
巧用ASP技術保護DHTML源代碼
深山旅行社網站管理系統 v1.4
91超碰caoporen国产香蕉|亚洲天堂在线免费|国产成人片在线观看|日本午夜免a费看大片中文|香蕉国产在线观看免费