Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iframe关闭父页面(iframe嵌套https页面)

iframe关闭父页面(iframe嵌套https页面)

作者头像
全栈程序员站长
发布于 2022-07-25 11:54:55
发布于 2022-07-25 11:54:55
7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

iframe是html标签,具有一般标签的属性:

width iframe的高度 height iframe的宽度 src iframe里面加载的页面url name 可以通过window.frames[name]获取到frame scrolling iframe里面的页面是否可以滚动 frameborder 是否显示iframe边框 1(显示)0(不显示) id 和其他的html标签id一样 在主页面中通过iframe标签可以引入其他子页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--localhost:8080/index-->
<iframe id='name' name='child' src="http://locahost:8080/child" frameborder="0" width='200px' height='300px' ></iframe>
<script>
   console.log(window.frames['child']);//获取到子页面的window对象
</script>

1、获取iframe内部元素

var frame=ducument.frames[‘name’] || document.getElementById();

常用属性contentWindow、contentDocument frame.contentWindow 获取子页面的window对象 frame.contentDocument 获取子页面的document对象

2、获取父页面

子页面可以访问、修改同一个域名的父页面的方法和属性 window.parent/parent 获取当前页面的父页面-iframe所在的页面 parent.window 获取父页面的window属性 parent.document 获取父页面的document属性 window.top 获取打开该页面的父页面,如果当前页面没有被嵌套到iframe中,window.topwindow window.self=window

安全问题-禁止iframe嵌套网页

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//当页面被非同域名iframe嵌套时:嵌套页面网址改变成本页面网址
if (window.top != window) {
    if (window.top.location.hostname && top.location.hostname !== window.hostname) {
        window.top.location.href = window.location.href;
    }
}

frame跨域调用

使用postMessage

父页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<body>
    <!-- qsstage.morningstar.com.com/parent.html -->
    <iframe id="ifr" src="http://test.com/child.html"> </iframe>
</body>
<script>
    window.onload = function () {
        var ifr = document.querySelector('#ifr');
        ifr.contentWindow.postMessage({ a: 1 }, '*');
    }
    window.addEventListener('message', function (e) {
        console.log('child say: ' + e.data);
    }, false);
</script>
</html>

子页面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
<body>
    <script>
        window.addEventListener('message', function (e) {
            console.log('parent say: ' + e.data.a);
            e.source.postMessage('get', '*');
        }, false)
    </script>
</body>
</html>

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/127708.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue项目iframe的传值问题
  所以。我把插件的使用封装了一个html页面。vue项目则利用iframe的方式引入。
Dawnzhang
2019/11/21
1.8K0
关于html5的PostMessage的用法总结(转载)
    大家都知道,网页之间传递数据可以使用ajax请求来完成,今天我总结下我学习的postMessage是如何完成跨页面请求数据的呢?首先,postMessage是html5新增的一个解决跨域的一个方法。那他是如何使用的呢?这里我把一个案例分享出来把。看下面的代码:
李维亮
2021/07/08
5470
记一次老项目中的跨页面通信问题和前端实现文件下载功能
由于本文介绍的主要还是基于javascript,不涉及任何框架方面的问题(如果想研究vue,react,angular方面的技术问题,可以移步我的其他文章),所以让我们用原生javascript来解决我们上面提到的问题吧。
徐小夕
2019/09/24
6960
记一次老项目中的跨页面通信问题和前端实现文件下载功能
web跨域解决方案
阅读目录 什么是跨域 常用的几种跨域处理方法: 跨域的原理解析及实现方法 总结 摘要:跨域问题,无论是面试还是平时的工作中,都会遇到,本文总结处理跨域问题的几种方法以及其原理,也让自己搞懂这方面的知识,走起。 什么是跨域     在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。   JavaScript这个安全策
hbbliyong
2018/03/06
2.8K0
web跨域解决方案
前端和前端联调的各种姿势,了解一下
背景:父页面index.html里面有一个iframe,iframe的src为子页面(另一个html的链接),下文都是基于此情况下进行
lhyt
2019/12/17
1.5K0
前端和前端联调的各种姿势,了解一下
iframe 自适应高度的多种实现方式
需求:实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。
全栈程序员站长
2022/09/06
7.8K0
获得同级iframe页面的指定ID元素的几种实现方法
注:window.frames("iframe的name")、document.frames("iframe的name")和window.frames["iframe的name"]、document.frames[""iframe的name"]的区别
阿豪聊干货
2018/08/09
2K0
Javascript跨域
如果协议,端口(如果指定了一个)和主机对于两个页面是相同的,则两个页面具有相同的源。
菜的黑人牙膏
2019/01/21
1K0
前端进程间通讯的渗透之术
父页面和子页面(iframe)处于2个不同的进程(即使在同一个域),进程之间的通讯必须通过每个进程内【事件监听所在的线程】来完成。最重要的是,通讯时传输的数据格式必须是序列化的格式,序列化格式指【一维】【线性】的数据类型比如字符串、字节流等,在浏览器中有这么几种序列化格式可选:
Jean
2020/10/09
1.7K0
Jquery取得iframe中元素的几种方法Javascript Jquery获取Iframe的元素、内容或者ID,反之也行!
jquery取得iframe中元素的几种方法 在iframe子页面获取父页面元素 代码如下: $('#objId', parent.document); // 搞定... 在父页面 获取iframe子页面的元素 代码如下: $("#objid",document.frames('iframename').document) $(document.getElementById('iframeId').contentWindow.document.body).html()  显示iframe中body
磊哥
2018/05/08
8.9K0
前端中存在的变量劫持漏洞
避免博客长草,水一篇文章,这篇文章中主要讲一个在前端中出现的有意思的变量劫持漏洞。
用户1879329
2023/02/27
5320
详解使用postMessage解决iframe跨域通信问题
这周碰到一个让人头疼的需求:要在我的web项目中嵌入另一个第三方web项目。第一时间想到的就是用iframe了,但问题来了,我和第三方web项目是有交互的,这就违反同源策略了,处理跨域问题是最让人头疼的事之一。
用户1289394
2021/10/13
4.8K0
JavaScript跨域解决方式
平时工作中经常被JavaScript跨域问题所困扰,其实有很多种解决方式,下面给大家介绍常用的几种:
Jack Chen
2018/09/14
7900
JavaScript跨域解决方式
Web中的窗口通讯方式及使用(postMessage/MessageChannel/BroadcastChannel)
三种常用的跨窗口通信技术:postMessage、MessageChannel 和 BroadcastChannel。
码客说
2024/01/06
2K0
不同页面通信与跨域
相信跨域有什么手段,大家都背得滚瓜烂熟了。现在我们来做一些不在同一个tab页面或者跨域的实践。
lhyt
2022/09/21
1.9K0
不同页面通信与跨域
真正解决iframe高度自适应问题
拿到这个对象,就可以根据正常网页的方法拿到嵌入(子)网页的文档高度,然后把值附给父页面的iframe的height。
yuezhongbao
2019/02/26
5.5K0
iframe基本知识及iframe版本Tab切换
HTML5学堂:本文当中,会依次为大家介绍iframe是什么,为何使用iframe;如何在当前网页中调用iframe中的标签和内容;如何在iframe中调用当前网页中的内容;检测iframe内容是否加载完成;利用iframe防止钓鱼;如何让iframe中加载的内容决定外层iframe的宽高。最后还会书写Tab切换的实例。 iframe是什么,为何使用iframe? iframe一般用来包含别的页面,例如我们可以在我们自己的网站页面加载别人网站的内容。示例: <body> <div class='bt
HTML5学堂
2018/03/12
4.4K0
postMessage详解
该方法是HTML5引入的API,可以通过异步方式实现跨源通信,多用于窗口间数据通信。它提供了一种受控机制来规避不同源脚本无法通信的限制,只要正确使用,这种方法很安全。
全栈程序员站长
2022/09/13
9030
postMessage详解
前端爬坑日记之vue内嵌iframe并跨域通信
由于该项目是基于原本的安卓app,做的微信h5,所以原来的使用webview的页面现在需要在vue中实现,那就是使用iframe 查看了很多很多文档,其中这一篇是很有价值的 https://gist.github.com/pboji...点击预览
双面人
2020/04/03
8K0
iframe 解析
简介:iframe在日常的开发中经常用到,本随笔在参考http://blog.csdn.net/cuew1987/article/details/11265153的情况下,将对iframe的常用用法进行总结。 1、iframe能解决的问题 (1)、通过iframe能实现跨域 (2)、使用iframe能解决IE6下select遮挡不住的问题 (3)、通过iframe能解决Ajax前进后退的问题 (4)、通过iframe实现异步上传(Easyui的form组件就是通过iframe,实现表单提交时,可以提交上传域
郑小超.
2018/01/26
2K0
相关推荐
vue项目iframe的传值问题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验