当前位置: 首页 > news >正文

vue iframe进行父子页面通信并切换URL

使用通义千问提问后得到一个很好的示例。

需求是2个项目需要使用同一个面包屑进行跳转,其中一个是iframe所在的项目,另一个需要通过地址访问。通过 window.parent.postMessage ,帮助 <iframe> 内嵌入的子页面和其父页面之间进行跨域通信。


【子页面】

// 子组件 (假设这是在iframe中的Vue应用)
new Vue({el: '#app',methods: {sendMessageToParent(url) {// 向父页面发送消息,包括目标URLwindow.parent.postMessage({ action: 'changeIframeSrc', url }, '*');}},template: `<button @click="sendMessageToParent('https://example.com/new-content')">Load New Content</button>`
});

【父页面】

<!-- 父页面 HTML -->
<div id="app"><iframe ref="myIframe" :src="currentUrl" width="600" height="400"></iframe>
</div>
// 父页面 Vue 实例
new Vue({el: '#app',data() {return {currentUrl: 'https://example.com/initial-content' // 初始URL};},mounted() {// 监听来自子组件的消息window.addEventListener('message', this.handleMessage);},beforeDestroy() {// 移除事件监听器以防止内存泄漏window.removeEventListener('message', this.handleMessage);},methods: {handleMessage(event) {const { data } = event;// 安全检查:验证消息来源和预期动作if (data.action === 'changeIframeSrc' && typeof data.url === 'string') {// 更新 iframe 的 src 属性this.currentUrl = data.url;}}}
});

请注意,在实际应用中,你不应该使用 '*' 作为 postMessage 的目标源参数,因为它允许消息被发送到任何域,这可能会导致安全问题。你应该指定一个明确的源,如 'https://your-iframe-domain.com',以便只接受来自特定域的消息。同样地,在父页面接收消息时,你也应该检查 event.origin 来确保消息确实来自预期的域。

【资料参考】

通义tongyi.ai_你的全能AI助手-通义千问

相关文章:

vue iframe进行父子页面通信并切换URL

使用通义千问提问后得到一个很好的示例。 需求是2个项目需要使用同一个面包屑进行跳转&#xff0c;其中一个是iframe所在的项目&#xff0c;另一个需要通过地址访问。通过 window.parent.postMessage &#xff0c;帮助 <iframe> 内嵌入的子页面和其父页面之间进行跨域通…...

基于Spring Boot的摄影师分享交流社区

一、系统背景与目的 随着摄影技术的不断发展和摄影爱好者群体的日益扩大&#xff0c;摄影师们需要一个能够展示自己作品、分享摄影心得、交流摄影技巧的平台。基于Spring Boot的摄影师分享交流社区应运而生&#xff0c;它旨在满足摄影师们的这些需求&#xff0c;促进摄影文化的…...

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 项目介绍 2.0 用户登录功能 3.0 用户管理功能 4.0 影院管理功能 5.0 电影管理功能 6.0 影厅管理功能 7.0 电影排片管理功能 8.0 用户评论管理功能 9.0 用户购票功…...

Linux(网络协议和管理)

后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都会及时修改的&#xff01; 在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频 王晓春老师的个人空间…...

C++ 入门第 20 天:STL 容器之无序集合与无序多重集合

往期回顾&#xff1a; C 入门17&#xff1a;STL 容器之映射&#xff08;map&#xff09;与多重映射&#xff08;multimap&#xff09;_-CSDN博客 C 入门18&#xff1a;STL 容器之栈&#xff08;stack&#xff09;与队列&#xff08;queue&#xff09;-CSDN博客 C 入门19&#x…...

devops-部署Harbor实现私有Docker镜像仓库

文章目录 概述下载配置安装安装后生成的文件使用和维护Harbor参考资料 概述 Harbor是一个开源注册中心&#xff0c;它使用策略和基于角色的访问控制来保护工件&#xff0c;确保镜像被扫描并且没有漏洞&#xff0c;并将镜像签名为可信的。Harbor是CNCF的一个毕业项目&#xff0…...

rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别

在Git版本控制系统中&#xff0c;rebase 和 merge 是两种不同的操作&#xff0c;用于合并分支。rebase A onto master 和 merge master into A 虽然最终目的都是将两个分支的更改合并在一起&#xff0c;但它们在处理方式和结果上有所不同。 rebase ‘A’ onto ‘master’ 含义…...

Vulhub:Jackson[漏洞复现]

CVE-2017-7525(Jackson反序列化) 启动漏洞环境 docker-compose up -d 阅读vulhub给出的漏洞文档 cat README.zh-cn.md # Jackson-databind 反序列化漏洞&#xff08;CVE-2017-7525&#xff09; Jackson-databind 支持 [Polymorphic Deserialization](https://github.com/Fas…...

strongswan构建测试环境

make-testing脚本文件负责构建strongswan的虚拟化测试系统。位于目录strongswan-5.9.14/testing/&#xff0c;需要以管理员身份运行make-testing。生成测试用到的虚拟客户机镜像&#xff0c;KVM虚拟机和虚拟网络的配置文件位于目录:config/kvm。 ~/strongswan-5.9.14/testing$…...

前端:金额高精度处理

Decimal 是什么 想必大家在用js 处理 数字的 加减乘除的时候&#xff0c;或许都有遇到过 精度不够 的问题&#xff0c;还有那些经典的面试题 0.20.1 ! 0.3&#xff0c; 至于原因&#xff0c;那就是 js 计算底层用的是 IEEE 754 &#xff0c;精度上有限制&#xff0c; 那么Deci…...

面试题整理3----nc命令的常见用法

面试题整理3----nc命令的常见用法 1. NC是什么2. NC的常用参数2.1 开启指定端口TCP监听(-l小写的L)2.2 测试端口是否能访问(-v)2.3 开启指定端口UDP监听(-u)2.4 端口扫描(-z)2.5 指定超时时间(-w)2.6 指定本地端口号连接(-p)2.7 指定的命令(-e) 1. NC是什么 nc&#xff08;Net…...

Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】

竣工测量是建筑项目竣工阶段的一个至关重要的环节&#xff0c;它为建筑工程的质量验收和成果核查提供了核心的参考依据。传统的竣工测量方法&#xff0c;如全站仪测量&#xff0c;主要依赖于现场人工操作&#xff0c;存在一些明显的局限性&#xff0c;例如作业时间长、工作量大…...

IntelliJ IDEA 使用技巧与插件推荐

目录 常用使用技巧 1. 使用快捷键提升开发效率 2. 多光标编辑 3. 代码自动补全 4. 使用 Find Action 快速执行操作 5. 集成版本控制系统&#xff08;VCS&#xff09; 6. 快速查看代码文档 推荐插件 1. Lombok Plugin 2. Rainbow Brackets 3. Key Promoter X 4. Chec…...

Oracle 技术精选学习

Oracle 技术犹如一座闪耀着无尽光芒的灯塔&#xff0c;为众多 IT 从业者和技术爱好者照亮了前行的道路。无论是数据库管理、企业应用开发还是数据分析&#xff0c;Oracle 都以其强大、稳定和广泛的应用而占据着行业的重要地位。学习 Oracle 技术&#xff0c;更是能为个人带来诸…...

sqlilabs第三十关到第三十五关靶场攻略

第三十关 第三十关和二十九关差不多&#xff0c;将单引号换成双引号 查询表名&#xff0c;字段名&#xff0c;数据 ?id1&id-2" union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- ?id1&id-2" …...

windows免登录linux

windows 生成秘钥文件 ssh-keygen -t rsa 将公钥传送到服务器 scp C:\Users\xx/.ssh/id_rsa.pub xxxx:/home/ruoyi/id_rsa.pub linux 使用ssh-copy-id -i ~/.ssh/id_rsa.pub userhost 如果禁用root登录&#xff0c;先开启 vim /etc/ssh/sshd_config PermitRootLogin yes …...

matlab绘图时设置左、右坐标轴为不同颜色

目录 一、需求描述 二、实现方法 一、需求描述 当图中存在两条曲线&#xff0c;需要对两条曲线进行分别描述时&#xff0c;应设置左、右坐标轴为不同颜色&#xff0c;并设置刻度线&#xff0c;且坐标轴颜色需要和曲线颜色相同。 二、实现方法 1.1、可以实现&#xff1a; 1…...

springboot+javafx使用aop切面导致的fx:id不能被注入问题

记录一个我遇到得问题 问题描述 我本来使用AOP切面来进行全局异常管理&#xff0c;但是使用AOP之后fxml中通过fx:id绑定得参数无法被注入 Slf4j Component Aspect public class GlobalExceptionAspect {AfterThrowing(pointcut "execution(* com.shkj.videoclassifica…...

说说你对java lambda表达式的理解?

大家好&#xff0c;我是锋哥。今天分享关于【说说你对java lambda表达式的理解?】面试题。希望对大家有帮助&#xff1b; 说说你对java lambda表达式的理解? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Java Lambda 表达式是 Java 8 引入的一项重要特性&#…...

优化你的 3D Tiles:性能与质量的平衡

优化你的 3D Tiles&#xff1a;性能与质量的平衡 在现代的三维场景渲染中&#xff0c;3D Tiles 是一种强大的技术&#xff0c;它能以高效、分级加载的方式呈现海量的三维数据。然而&#xff0c;优化 3D Tiles 以实现性能与质量的平衡&#xff0c;却是一个复杂且关键的任务。本…...

终极D2DX宽屏补丁:让经典暗黑破坏神2在现代PC上完美重生

终极D2DX宽屏补丁&#xff1a;让经典暗黑破坏神2在现代PC上完美重生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还…...

避坑指南:Unity热重载插件内存占用高?可能是Windows Defender在搞鬼

Unity热重载性能优化&#xff1a;解决Windows Defender导致的资源占用问题 当你在Unity开发过程中频繁修改C#代码时&#xff0c;热重载(Hot Reload)功能无疑是提升效率的利器。它能让你在游戏运行状态下即时看到代码修改效果&#xff0c;避免反复重启带来的时间浪费。然而&…...

高性能键盘映射与SOCD清理架构解析:解决游戏输入冲突的技术方案

高性能键盘映射与SOCD清理架构解析&#xff1a;解决游戏输入冲突的技术方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏和高速动作游戏中&#xff0c;键盘输入的处理方式直接影响玩家的操作精度和…...

通达信数据解析终极指南:mootdx让金融数据获取变得如此简单

通达信数据解析终极指南&#xff1a;mootdx让金融数据获取变得如此简单 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易的世界里&#xff0c;获取准确、完整的市场数据是…...

3倍效率提升:Gofile批量下载工具实战指南

3倍效率提升&#xff1a;Gofile批量下载工具实战指南 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 您是否曾为Gofile平台的文件下载效率低下而烦恼&#xff1f;当面对大文…...

Arm Neoverse CMN-700 HN-F寄存器架构与缓存一致性配置详解

1. Arm Neoverse CMN-700 HN-F寄存器架构概述在现代SoC设计中&#xff0c;一致性互连网络&#xff08;Coherent Mesh Network&#xff09;是实现多核处理器高效协同工作的核心基础设施。作为Arm Neoverse平台的关键组件&#xff0c;CMN-700通过其独特的网格拓扑结构和分布式节点…...

3个维度深度解析:UABEA如何重塑Unity资源处理生态

3个维度深度解析&#xff1a;UABEA如何重塑Unity资源处理生态 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 在Unity游戏开发和资源处理的复杂生态中&#xff0c;开发者常常面临一个核心挑战&#xf…...

从零到一:基于GD32E230核心板的PCB设计实战与模块化解析

1. GD32E230核心板硬件设计基础 第一次拿到GD32E230这颗国产MCU时&#xff0c;说实话有点小激动。作为兆易创新基于Cortex-M23内核的拳头产品&#xff0c;它用55nm工艺把芯片面积压缩到了惊人的3x3mm&#xff0c;却集成了5个定时器、2个SPI、2个I2C这些实用外设。我在去年一个智…...

Kubernetes配置管理实战:基于Kustomize的结构化部署与多环境管理

1. 项目概述&#xff1a;一个被低估的Kubernetes配置管理利器如果你和我一样&#xff0c;长期在Kubernetes生态里摸爬滚打&#xff0c;那你一定经历过这样的场景&#xff1a;为了部署一个稍微复杂点的应用&#xff0c;需要维护一堆YAML文件——Deployment、Service、ConfigMap、…...

终极指南:如何用WarcraftHelper让魔兽争霸3在现代电脑上完美运行 [特殊字符]

终极指南&#xff1a;如何用WarcraftHelper让魔兽争霸3在现代电脑上完美运行 &#x1f3ae; 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔…...