首页 web前端 js教程 IFrame跨域高度自适应实现代码_javascript技巧

IFrame跨域高度自适应实现代码_javascript技巧

May 16, 2016 pm 05:50 PM
自适应

复制代码 代码如下:

var iframeids = ['memberIndexIframe','inquiryCenterIframe','everychinaBbsIframe'];
var iframehide = "yes";
function dynIframeSize(){
var dyniframe = [];
for(var i=0;iif(!document.getElementById) return false;
dyniframe[i] = document.getElementById(iframeids[i]);
if(dyniframe[i] && !window.opera){
dyniframe[i].style.display = "block";
if(dyniframe[i].contentDocument && dyniframe[i].contentDocument.body.offsetHeight){
dyniframe[i].height = dyniframe[i].contentDocument.body.offsetHeight;
}else if(dyniframe[i].Document && dyniframe[i].Document.body.scrollHeight){
dyniframe[i].height = dyniframe[i].Document.body.scrollHeight;
}
}
if((document.all || document.getElement) && iframeids == "no") {
var tempobj = document.all?document.all[iframeids[i]] : document.getElementById(iframeids[i]);
tempobj.style.display = "block";
}
}
}
if (window.addEventListener)
window.addEventListener("load", dynIframeSize, false)
else if (window.attachEvent)
window.attachEvent("onload", dynIframeSize)
else {
window.onload = dynIframeSize;
}

对于上面的代码直接保存一个文件iframe.js,然后引用即可

注意:这段代码对于跨域的iframe引用不太适用,需要特别定义其iframe高度

下面这个代码是跨域的iframe高度

项目网站中需要嵌入合作网站的页面,这就需要页面的自适应高度变化,并且是跨域的。在网上看了许多资料,加上自己的实践,终于实现了跨域的IFrame自适应高度。如下:

首先,我的页面a.html需要引入对方的b.html,在这里运用iframe方式实现页面的套用
a.html页面的主要代码如下:
复制代码 代码如下:





a.html页面只是用来引入对方页面的一个简单页面 这就不多做介绍。
然后,最好在a.html同一级目录下,创建一个agent.html页面,该页面用来得到对方通过js传递过来的参数,
根据高度参数来调整a.html中的a_iframe的高度,主要代码如下:
Js代码
复制代码 代码如下:



最后,对方的页面(b.html),让对方在b.html中加入以下javascript代码
复制代码 代码如下:




通过 Math.max(clientHeight,scrollHeight)比较网页可见区域高,网页正文全文高这两者得到其中的较大的值后,
iframe将这个height通过src传递到我的agent.html,这样a.html中的Iframe就能自适应对方的b.html高度了。这里在IE下测试的没问题,其它浏览器没测试。
在实现这个功能的过程中,在网上发现了一段很有用的获取页面高度的js,在这里也记录、引用下:
复制代码 代码如下:

<script> <BR>var strInfo=" " ; <BR>strInfo+=" \r\n网页可见区域宽:" +document.body.clientWidth; <BR>strInfo+=" \r\n网页可见区域高:" +document.body.clientHeight; <BR>strInfo+=" \r\n网页可见区域宽:" +document.body.offsetWidth+" (包括边线的宽)" ; <BR>strInfo+=" \r\n网页可见区域高:" +document.body.offsetHeight+" (包括边线的宽)" ; <BR>strInfo+=" \r\n网页正文全文宽:" +document.body.scrollWidth; <BR>strInfo+=" \r\n网页正文全文高:" +document.body.scrollHeight; <BR>strInfo+=" \r\n网页被卷去的高:" +document.body.scrollTop; <BR>strInfo+=" \r\n网页被卷去的左:" +document.body.scrollLeft; <BR>strInfo+=" \r\n网页正文部分上:" +window.screenTop; <BR>strInfo+=" \r\n网页正文部分左:" +window.screenLeft; <BR>strInfo+=" \r\n屏幕分辨率的高:" +window.screen.height; <BR>strInfo+=" \r\n屏幕分辨率的宽:" +window.screen.width; <BR>strInfo+=" \r\n屏幕可用工作区高度:" +window.screen.availHeight; <BR>strInfo+=" \r\n屏幕可用工作区宽度:" +window.screen.availWidth; <BR>window.confirm(strInfo); <BR></script>
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1419
52
Laravel 教程
1311
25
PHP教程
1262
29
C# 教程
1235
24
如何在 Windows 11 上配置内容自适应亮度 如何在 Windows 11 上配置内容自适应亮度 Apr 14, 2023 pm 12:37 PM

自适应亮度是 Windows 11 计算机上的一项功能,可根据显示的内容或照明条件调整屏幕的亮度级别。由于部分用户还在习惯 Windows 11 的新界面,因此无法轻松找到自适应亮度,甚至有人说 Windows 11 上的自适应亮度功能缺失,所以本教程将把所有内容都弄清楚。例如,如果您正在观看 YouTube 视频并且视频突然显示黑暗场景,自适应亮度将使屏幕更亮并增加对比度级别。这与自动亮度不同,自动亮度是一种屏幕设置,可让计算机、智能手机或设备根据环境照明调整亮度级别。前置摄像头中有一个特殊的

如何用Vue构建自适应移动端界面? 如何用Vue构建自适应移动端界面? Jun 27, 2023 am 11:05 AM

随着移动互联网的普及,越来越多的网站和应用需要考虑在移动端的使用体验。Vue作为一种流行的前端框架,具有响应式布局和自适应能力,可以很好地帮助我们构建自适应移动端界面。本文将介绍如何用Vue构建自适应移动端界面。使用rem代替px作为单位在移动端界面中使用px作为单位,可能会导致在不同设备上的显示效果不一致。因此,建议使用rem代替px作为单位。rem是相对

使用 CSS Viewport 单位 vmin 和 vw 实现自适应图片大小的方法 使用 CSS Viewport 单位 vmin 和 vw 实现自适应图片大小的方法 Sep 13, 2023 am 08:18 AM

使用CSSViewport单位vmin和vw实现自适应图片大小的方法在网页设计中,经常会遇到需要让图片自适应屏幕大小的情况。为了实现这一目标,CSS提供了一种强大的单位——viewport单位。其中,vmin表示视口宽高中较小的一方的百分比,而vw表示视口宽度的百分比。所以,我们可以利用这两种单位来实现自适应图片大小的效果。下面将介绍具体

vue能实现自适应吗 vue能实现自适应吗 Dec 30, 2022 pm 03:25 PM

vue能实现自适应,其实现自适应的方法有:1、通过“npm install”或“yarn add”命令安装“scale-box”组件,并使用“scale-box”实现适配缩放;2、通过设置设备像素比例实现自适应;3、通过JS设置zoom属性调整缩放比例来实现自适应即可。

CSS Viewport: 如何使用 vmax 和 vw 来实现自适应文字宽度的方法 CSS Viewport: 如何使用 vmax 和 vw 来实现自适应文字宽度的方法 Sep 13, 2023 am 10:16 AM

CSSViewport:如何使用vmax和vw来实现自适应文字宽度的方法随着移动设备的普及,响应式设计已经成为了网页设计的重要概念。其中,自适应文字宽度在不同屏幕尺寸下保持一致的显示效果是一项重要的技术。本文将介绍如何使用CSSViewport单位,特别是vmax和vw单位,来实现自适应文字宽度的方法。除了理论解说,我们还会提供具体

如何使用HTML、CSS和jQuery创建一个自适应的网站布局 如何使用HTML、CSS和jQuery创建一个自适应的网站布局 Oct 27, 2023 am 11:06 AM

如何使用HTML、CSS和jQuery创建一个自适应的网站布局在当今互联网时代,网站的自适应布局已经成为了一个必不可少的要求。网站的自适应布局可以使网站在不同设备上展示出良好的用户体验,并且适应不同屏幕尺寸的设备,如电脑、平板和手机等。本文将介绍如何使用HTML、CSS和jQuery来创建一个自适应的网站布局,并提供具体的代码示例。使用HTML创建网站骨架首

PHP8.0中的自适应Server PHP8.0中的自适应Server May 14, 2023 pm 01:10 PM

在2020年11月26日,PHP团队正式发布了PHP8.0版本,相较于之前的版本,PHP8.0带来了许多新的特性和改进,其中一个值得关注的特点是自适应Server。本文将会介绍PHP8.0中自适应Server的概念以及它的优势。在之前的PHP版本中,开发者可以使用PHP自带的服务器(比如说PHP-FPM、Apache)来运行自己的代码。不过,这些服务器的缺点

使用PHP实现自适应网站设计 使用PHP实现自适应网站设计 Jun 22, 2023 pm 05:50 PM

网站设计在当前的互联网时代变得越来越重要。设计师和开发人员必须要考虑到不同设备的分辨率、不同尺寸屏幕以及不同的操作系统等问题。而这些变数让网站自适应变得更加必要。PHP是一种流行的编程语言,可以用来开发自适应网站。在本文中,我们将介绍使用PHP实现自适应网站设计的方法,并提供几个实用的技巧。什么是自适应网站设计?自适应网站设计是指根据用户设备(如手机、平板电

See all articles