首页 > 其他分享 >【踩坑系列-JS】iframe中的url参数获取

【踩坑系列-JS】iframe中的url参数获取

时间:2024-07-24 15:53:56浏览次数:10  
标签:嵌入 url JS window 参数 iframe 页面

Author:赵志乾
Date:2024-07-24
Declaration:All Right Reserved!!!

1. 问题描述

        系统A的页面中以iframe的方式嵌入了系统B的页面,并需要将A页面url中的参数传递给B页面。

        最初的实现方式是:在B页面直接以下面的代码获取url参数,发现参数的值为undefined。

let searchParams = new URLSearchParams(window.location.search);   
console.log(searchParams.get(参数名)); 

2. 问题分析

        iframe的工作原理如下:

  • 标签插入:使用<iframe>标签指定嵌入内容的位置,且该标签的src属性指定了要嵌入网页的URL;
  • 上下文创建:浏览器解析到<iframe>标签时,会为嵌入的内容创建一个独立的上下文,即与主页面的上下文是分开的,这也就意味着嵌入的网页可以拥有自己的DOM结构、CSS样式和JS执行环境;
  • 内容加载:浏览器依据<iframe>标签的src属性指定的URL,向服务器发送请求,获取嵌入网页的HTML、CSS和JS等资源,获取到这些资源后便在iframe中渲染这些资源;
  • 交互与通信:虽然主页面与嵌入的网页有不同的上下文,但两者依然可以通过window.parent和window.frames属性来相互访问,以实现数据传递和方法调用;

        故iframe网页内通过window.location.search获取的是嵌入页面url参数,而非主页面的url参数。

3. 解决方案

        方案1:将主页面的url参数拼接到<iframe>的src属性的url上,之后便可通过window.location.search来访问,该方案更为通用;

        方案2:嵌入的页面通过window.parent.location.search来获取主页的url参数,但需要注意跨域限制;

标签:嵌入,url,JS,window,参数,iframe,页面
From: https://blog.csdn.net/zhaoyaxuan001/article/details/140664088

相关文章

  • JS之webpack
    目录一、认识webpack1.1webpack数组形式1.2webpackde对象形式一、认识webpackWebpack是一个现代的静态模块打包工具,它主要用于前端开发中的模块化打包和构建。通过Webpack,开发者可以将多个模块(包括JavaScript、CSS、图片等)进行打包,生成优化后的静态资源文件,以供在浏览器中加......
  • 【计算机毕业设计】ssm497网上茶叶销售平台设计与开发+jsp
    计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话和联系,极大的方便了人们的生活。所以说,网上茶叶销售平台用计算机技术来进行设计,......
  • 【计算机毕业设计】ssm495题库管理系统的设计与实现+jsp
    随着考试的增多,需要管理的试卷越来越多。现在大多数学校考试的方式采用老师出卷安排考试时间,学生参与的方式。这种方式效率低、灵活性低,每门课程的考卷组成就给老师的统计整理工作造成困难。目前,网络发展成熟,各类管理系统层出不穷,如果可以有专业的管理系统提供网上考试,则可......
  • NodeJS小饰品销售管理系统-计算机毕业设计源码21597
    基于JavaScript技术的小饰品销售管理系统设计与实现摘要在当今的数字化时代,电子商务已经成为了商业领域中不可或缺的一部分。随着消费者对于购物体验的要求越来越高,一个高效、便捷、用户友好的小饰品销售管理系统显得尤为重要。本系统旨在利用JavaScript技术,设计并实现......
  • 从 IFRAME javascript 到 google colab 的回调函数
    所以我在学习googlecolab时遇到了一个问题,在googlecolab中运行我的代码,我打开服务器并使用IFRAME查看我的网站,我试图解决的问题是选择json文件并单击上传时我希望该文件上传到我的笔记本本地内存,我的index.html文件有一个回调函数:<script>functionuploadJs......
  • 了解package.json中npm run命令的执行原理,以及直接运行shell命令
    了解npmrun在package.json文件中的script字段,可以定义脚本命令,通过npmrun指令运行该脚本。比如简单定义一个输出打印的shell脚本。{"script":{"hw":"echohelloworld!"}}执行npmrunhw可以看到终端上打印出了helloworld!。我们可以在很多工程项目中......
  • JS实现一个发布-订阅模式(观察者模式)
    //创建一个简单的事件中心,允许对象订阅事件、发布事件并取消订阅。//创建一个事件中心对象,IIFE,返回一个包含订阅、取消订阅和发布方法的对象constEventCenter=(function(){//存储事件及其对应的订阅者,存储事件及其对应的监听器数组constevents={}......
  • Warning formula.jws.json update failed, falling back to cached version
    Warning:formula.jws.json:updatefailed,fallingbacktocachedversion.MacOS执行服务启动命令时,显示下载失败警告,导致无法启动服务MacBook-Pro~%brewservicesstartnginx==>Downloadinghttps://formulae.brew.sh/api/formula.jws.json########......
  • 216java jsp SSM公司企业人事人力资源管理系统员工考勤休假申请人事变更考核标准结果
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......
  • 214java jsp SSM高校校园食堂订餐点餐系统(源码+文档+运行视频+讲解视频)
     项目技术:SSM+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows7/8/1......