订阅本栏目 RSS您所在的位置: 深山工作室 > HTML > 正文

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

2022/6/8 11:04:34 字体: 浏览 1053

近弄个东西,需要用到iframe,但是加载的网页中有_blank,不能让他跳出来。
如果想让目的网址的_blank删除,这是不可能的。
网上找了很多的资料,要么是跨域不能修改.要么就根本牛头不对马嘴


后来,看到了html5里iframe有个叫sandbox的属性把 iframe 里的网页给关笼子里的属性

所以,就来找找这个的用法.


<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms"
    src="https://www.qwbm.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允许(惊喜!)指针锁定。
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/

相关阅读
纯div+css制作的弹出菜单-02
利用java使图片左右上下循环连续滚动不出现空白
asp防止access数据库被下载破解
ewebeditor 删除信息时同时删除相关上传文件
生成最新日期与时间选择(年月日)下拉框
网站完成各个浏览器兼容测试
正则替换回车换行符和把br替换成回车换行符
ul,li设置新闻列表,超出范围对象,自动隐藏
共有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的区别分析
更多>>最新添加文章
ASP中Utf-8与Gb2312编码转换乱码问题的解决方法页面编码声明
DW设置之后更好用 DreamweaverCS编辑GB2312与UTF-8文件在代码视图中点击鼠标错位问题的解决办法
解决国内 github.com 打不开的准确方法
8种Python字符串拼接的方法,你知道几种
Python拼接字符串的几种方式
Python pandas删除指定行/列数据的方法实例
chrome谷歌浏览器中的谷歌翻译有问题一键修复处理
让你的Pycharm和电脑pip install下载速度飞起来
更多>>随机抽取信息
来自网易空间排行宽度可以变化的选项卡
asp加载xml 用于验证目标网站是否更新
asp利用fso中的二进制数据流方式读取任意文件,并且在网页上下载保存文件
深山留言板系统(网吧游戏专用) v3.6
网页链接十字显示就像CAD十字做标一样,效果非常好
uni-app与HTML的标签变化对比