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

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

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

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

前一页:没有了
相关阅读
旅行社管理系统商业版3.0发布
ASP版通过身份证信息获取对应的生日性别年龄
table表格详解,了解表格不为人知的属性,标准化你的表格
地瓜坊
连云港市海州区培智学校
深山工作室
留言板留言板V7.0
利用css制作简易相册
共有0条关于《iframe里阻止_blank弹出新窗口的方法》的评论
发表评论
正在加载评论......
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
网友评论声明,请自觉遵守互联网相关政策法规。

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

更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
更多>>同类信息
iframe里阻止_blank弹出新窗口的方法
jquery实现下拉加载更多
jquery获得当前所有input表单数据并进行序列化的各种问题与解决方案serialize与serializeArray的区别分析
jquery获取不同类型表单值的方式
查询某个字符在字符串中出现的位置数组
正则的常表达式
更多>>最新添加文章
阿里云短信验证码签名不合法isv.SMS_SIGNATURE_ILLEGAL
iis点开后任务栏上有显示,但是窗口看不到的解决办法
facebook广告推广设定像素标准事件的值和币种等说明
iframe里阻止_blank弹出新窗口的方法
jquery实现下拉加载更多
静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码
RSA加密解密插件
微软Encoder加密解密函数
更多>>随机抽取信息
CSS教程:弄懂闭合浮动元素
关于深山旅行社演示网站一些错误
获得当前页面的长宽高各项参数
一个利用select下拉选择框进行变色的网页效果
放心会计
asp利用dateadd获得上个月、本月、下个月的第一天和最后一天