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

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

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

近弄个东西,需要用到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/

相关阅读
IE6.0, IE7.0和FireFox浏览器css样式兼容
万家乐
深山留言板V2.1 Build 090620
IIS上传文件大小解处限制的方法
深山行者留言系统V3.3发布
解决国内 github.com 打不开的准确方法
用javascript美化Select,并获取相应的值
jquery获得当前所有input表单数据并进行序列化的各种问题与解决方案serialize与serializeArray的区别分析
共有0条关于《iframe里阻止_blank弹出新窗口的方法》的评论
发表评论
正在加载评论......
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。

更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
DW设置之后更好用 DreamweaverCS编辑GB2312与UTF-8文件在代码视图中点击鼠标错位问题的解决办法
js指定日期加n天加n月加n年
jquery中动态生成的代码使用on hover事件时不出现效果
更多>>最新添加文章
dw里面查找替换使用正则删除sqlserver里面的CONSTRAINT
Android移动端自动化测试:使用UIAutomatorViewer与Selenium定位元素
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
更多>>随机抽取信息
扬子国际
东莞市潮流假期旅行社有限公司
关于字体在CSS中处理效果的思考
页面文字变色、变大、还原
呼伦贝尔市北天草原旅行社有限公司
按钮复制文章URL和复制保留文章的版权