利用postmessage间接实现iframe跨域调用父页面js函数

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

父页面html代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script type="text/javascript">
        window.onload = function () {
            //添加监听事件。
            if (typeof window.addEventListener != "undefined")
                window.addEventListener("message", func, false);
            else if (typeof window.attachEvent != 'undefined')//兼容不支持addEventLinstener的IE。
                window.attachEvent("onmessage", func);
        }
        //被调用的函数。
        function invocationTarget(msg) {
            if (msg)
                alert(msg);
            else
                alert("~~~");
        }
        //监听事件回调函数。
        function func(e) {
            if (e.data.action == true)
                invocationTarget(e.data.value);
       
获取iframe内部的DOM元素方式(与不 这里使用contentDocument属性来获取iframe的document对象。由于contentDocument在某些浏览器中可能不被支持,所以使用||操作符来兼容,当contentDocument不可用时,使用contentWindow.document来获取 阅读详情

相关推荐

iframe页面传参通信

基本概念: window.self: 当前窗口自身的引用 window.parent: 上一级父窗口的引用 window.top: 最顶层窗口的引用 当页面中不存在 iframe 嵌套时,则三者均是当前窗口自身的引用。 同iframe相互调用页面调用父页面方法:window.parent.fatherFn(); 父页面调用页面方法: window.sonFrameName.sonFn(); (sonFrameName是iframe的name值) 非 父调 //父页面 <button c

FantasyWeirdo的博客 2588

JSpostMessage 用法(可以给iframe传值)

文档消息,有时候也简称为`XDM(cross-document messaging)`,是一种在不同执行上下文(如不同源的页面)间传递信息的能力。 例如:`www.wrox.com`上的页面想要与包含在内嵌窗格中的`p2p.wrox.com`上面的页面通信 `XMD`的核心就是`postMessage()`方法,将`message`传递给指定窗口

qq_45677671的博客 1万+

嵌套iFrame使用postMessage相互传递消息(嵌套iFrame窗口、页面).zip

demo地址:http://www.tkcb.cc/menu/blog/html/html_0001/index.html 练习说明:使用postMessage可以在iFrame、父窗口、页面等,之间相互传递消息。 你好,我是TKCB-GO,一个有着游戏策划梦想,却沦为程序员的游戏家,这是我的技术博客:www.tkcb.cc 技术博客网站里面,除了我的技术分享,还有我们乐队推荐的游戏、软件、电影、作品、超赞链接推荐等等。 最后,我会在CSDN陆续分享我的大量的(至少几百个)技术练习、经验等,希望大家多多交流,相互学习。

页面嵌套iframe怎么调用父页面的方法,页面回调父页面函数方法

页面嵌套iframe怎么调用父页面的方法,页面回调父页面函数方法, iframe父页面js的相互调用

橙-极纪元-JJYCheng 1万+

前端 父页面调用 iframe

父页面页面 window.onload = function () { 1、 document.getElementById("页面元素ID").contentWindow.页面方法名; 2、 document.getElementsByTagName("页面元素标签名")[i].contentWindow.页面方法名; 3、 document.getEle...

Zhang_h_的博客 1088

iframe互调,PostMessage

iframe里的js操作父级窗口的dom iframe里的js要操作父级窗口的dom,必须搞懂几个对象: parent是父窗口(如果窗口是顶级窗口,那么parent==self==top), top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe), self是当前窗口(等价window), opener是用open方法打开当前窗口的那个窗口; 这样iframe...

hmily43的博客 1105

iframe页面调用

页面传递参数,父页面接收 页面传输 window.parent.postMessage(“参数”,"");(可以是号,也可以是父页面的链接"http://127.0.0.1:8888/aaaa/bbb.html") 父页面接收 window.addEventListener(‘message’, function (e) { console.log(e.data) //e.data为传递过来的数据 console.log(e.origin) //e.origin为调用 postMessage 时消息

CYY941027的博客 583

JSpostMessage实现iframe通信

JSpostMessage实现iframe通信

owo_ovo的博客 2147

VUE中iframe结合window.postMessage实现通信

什么是iframeiframe 元素会创建包含另外一个文档的内联框架(即行内框架)。 什么是postMessage? window.postMessage()方法可以安全地实现源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机 (两个页面的模数Document.domain设置为相同的值...

Oralinge 1万+

vue页面内嵌iframe使用postMessage进行通信

关于的详细资料:,这里只需要明确什么情况下了(等同于两个url什么情况下是非同源关系)。 协议、名、端口三者有其一不同,就算是,就算是非同源 本地环境模拟 借助phpstudy创建两个非同源网站,分别为www.a.com以及www.b.com。其中www.b.com的创建过程如下。 以上创建出来的www.b.com网页就是一个vue页面,访问如下: 同理创建出www.a.com页面,访问页面如下: vue中使用iframepostMessage通信 获取ifra

foreverzwl 2975

iframe通信和不通信

通信 主页面 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <iframe name="myIframe" id="iframe" clas...

Army-海军的博客 1万+

iframe通信(postMessage)

iframe通信(postMessage) 前言 ❝ ,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。所谓同源是指相同的名、协议和端口,只要其中一项不同就为 ❞ 需求背景 在web项目中通过iframe嵌入另一个第三方web项目,第三方web项目里点击某个按钮要实时调用web项目的全局函数打开某个全局弹窗或者进行...

包磊磊的博客 1704

layer/iframe问题postmessage的方式解决

首先这个问题应该是一直以来大家比较困惑的事情,其实简单来说就是存在一堵墙影响了两个人的访问关系,也就是不过去的地。 那么问题来了,为啥会遇到这样的问题,首先当不是本地起的服务的时候,你要是想通过load或者layer的方式去加载本地的文件的时候就会出现 ...

赏樱看雪撸代码 2794

Angular2+ iframe调用父页面js

业务场景:列表页面添加一个导入功能,该导入功能由第三方页面提供,导入完成后需要通知主列表刷新数据。 先来看看iframe调用父页面实现逻辑(以postMessage方式为例) (postMessage介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage) 1.父页面html <!D...

weixin_30418341的博客 538

iframe父页面相互传值,并兼容问题.(项目实测成功) from accessing a cross-origin frame

项目背景: 部署本地服务器项目,后台管理系统内需要用iframe嵌入另一个功能项目,需要能够互相传值进行操作 问题: 翻译之后是了,因为浏览器的同源策略问题 解决方法: 1:父页面iframe传值 (在父页面js里获取到iframe,然后向iframe传值,然后这么写就行了,第一个参数是需要传的...

往事随风的博客 8万+

记录 iframe 通信及安全配置

然而,随着问题的日益严峻,如何确保在安全的前提下实现不同源之间的通信和资源加载,成为了开发者需要解决的关键问题。中,造成点击劫持(Clickjacking)等安全问题,你可以使用以下的头部配置来增强安全性。:由于浏览器的同源策略,父页面iframe 之间默认不能互相访问对方的资源。提供了一个安全的方式,让不同iframe父页面之间能够安全地通信。与传统的 DOM 操作不同,,不同iframe 默认不能访问父页面的资源,反之亦然。中,第二个参数是目标源,确保只允许来自指定源的消息。

qq_36291550的博客 2112

iframe

iframe是什么东西? IFRAME是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架)。 页面嵌套iframe比较常见。使用iframe要满足一个基本条件,父页面页面都是自己可以控制的,如果随便把iframe指向一个其他网站,想通过手段操作它基本上是不可能的。 document.domai...

qq_39930584的博客 4415

Vue嵌入iframe,iframe如何调用vue内路由

这两天遇到一个的业务逻辑,具体如下图: 关于 URL例 说明 是否允许通信 http://www.1.com/1.js http://www.1.com/2.js 同一个名 允许 ...

weixin_34405332的博客 7462
上一篇: 生成随机密码
下一篇: DataTable转换为List 【拓展方法】
Jaye-L
博客等级 码龄14年 0粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值