如何根据iframe内嵌页面调整iframe高宽

简介:

问题来自于工作的实例,我的一个域名A的页面,有个iframe,它可能内嵌了另一个域名B的页面,也可能内嵌域名C的页面,但是呢,B和C的页面大小是不一样的,特别是高是不一样的高,那么我如何设置iframe的height属性呢?

这个本质就是跨域设置的问题。

一种解法

B和C提供一个jsonp接口,让有iframe的页面A来调用,这个jsonp接口的目的就是告诉A,我的页面的高宽各是多少。

第二种解法

1 首先给A页面的iframe设置个id,比如id=”aiframe”

2 B和C页面内嵌一段html:

<iframe src=”http://A.com/detail/iframe?height=200&weight=100”></iframe>

3 其中http://A.com/detail/iframe A提供的一个接口,这个接口返回一段js

<script type=”text/javascript”>parent.parent.getElementById(“aiframe”).style.height=”200px”</script>

由于这个接口是动态的,这里返回的200是根据B或者C调用接口的参数返回的。

再由于这个接口和有iframe的A是同域的,所以可以操作iframe的DOM属性。

补充

第二种解法可以做扩充完善:

1 第2步中的B,C内嵌的html可以使用window.innerHeight来自动获取页面

2 第2步中的内嵌html可以替换成一个A的js文件,这个文件做的事情就是append这个A



本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/p/3456637.html,如需转载请自行联系原作者


相关文章
|
SQL 缓存 NoSQL
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
本篇文章详细说明了幂等性,解释了什么是幂等性,幂等性的使用场景,讨论了幂等和防重的概念。分析了幂等性的情况以及如何设计幂等性服务。阐述了幂等性实现防重的几种策略,包括乐关锁,防重表,分布式锁,token令牌以及支付缓冲区。
8749 0
接口的幂等性设计和防重保证,详细分析幂等性的几种实现方法
|
人工智能 开发框架 搜索推荐
今日 AI 开源|共 10 项| 复合 AI 模型,融合多个开源 AI 模型组合解决复杂推理问题
今日 AI 简报涵盖多项技术革新,包括多模态检索增强生成框架、高保真虚拟试穿、视频生成、生成式软件开发、上下文感知记忆管理等,展示了 AI 在多个领域的广泛应用和显著进步。
685 10
今日 AI 开源|共 10 项| 复合 AI 模型,融合多个开源 AI 模型组合解决复杂推理问题
|
8月前
|
人工智能 搜索推荐 安全
国央企与大型民营企业CRM选型:复杂需求下的智能化解决方案
在企业数字化转型中,CRM系统已成为推动增长与效率的核心引擎。特别是国央企及大型民营企业,面对复杂的业务需求和庞大的组织架构,选择适合的CRM至关重要。文章分析了选型中的五大挑战:跨部门协同、个性化需求、异构系统整合、安全合规及数据挖掘能力,并以纷享销客为例,展示其通过AI+CRM实现内外高效协同、智能决策支持及灵活定制的优势。最终强调,CRM应被视为长期数字化转型的核心基础设施,需综合评估系统扩展性、技术迭代能力及服务响应效率,确保技术投入与企业发展战略高度协同。
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
451 153
|
云安全 运维 安全
阿里云安全产品购买详细介绍_版本_价格_功能优势
阿里云安全产品购买详细介绍_版本_价格_功能优势,云安全中心基础版免费、防病毒班432元一年、高级版优惠价969元一年,还有企业版和旗舰版可选,阿里云百科分享阿里云安全中心详细介绍,包括云安全中心功能、不同版本价格表以及有必要购买说明
720 0
|
10月前
|
Linux
RPM软件包管理工具使用指南
RPM(Red Hat Package Manager)是Red Hat及其他基于RPM的Linux发行版中用于管理软件包的基本包管理工具。它是一个二进制包管理系统,允许用户在Linux系统中方便地安装、升级、查询和删除软件包。RPM使用.rpm文件扩展名的软件包文件,这些软件包文件包含了软件的可执行文件、配置文件、文档等,以及安装和卸载时需要执行的脚本。通过RPM,用户可以轻松地管理和维护系统中的软件,确保系统的稳定运行和软件的及时更新。
689 4
|
SQL Java 关系型数据库
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
基于SpringBoot使用MyBatisPlus,MyBatisPlus标准数据层开发(CRUD)、MyBatisPlus分页功能的使用
356 2
|
计算机视觉 开发者 Python
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
572 0
|
存储 开发框架 Java
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
文章详细介绍了Spring、IOC、DI的概念和关系,解释了控制反转(IOC)和依赖注入(DI)的原理,并提供了IOC的代码示例,阐述了Spring框架作为IOC容器的应用。
887 1
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
|
分布式计算 Hadoop Java
面向开发者的Hadoop编程指南
【8月更文第28天】Hadoop是一个开源软件框架,用于分布式存储和处理大规模数据集。它由Hadoop分布式文件系统(HDFS)和MapReduce编程模型组成。本指南旨在帮助初学者和中级开发者快速掌握Hadoop的基本概念和编程技巧,并通过一些简单的示例来加深理解。
533 0

热门文章

最新文章