网站首页 > 知识剖析 正文
项目上有个需求,html页面展示多个视频,视频的提供方式是一个html页面,需要将视频页面使用iframe的方式嵌入到展示页面。
html视频页面(video.html),内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.1" />
<title>视频播放页面</title>
<style>
*,body,html{
margin: 0;
padding: 0;
overflow: hidden;
line-height: 0px;
}
body{
background-color: rgb(248, 244, 244);
}
</style>
</head>
<body>
<video controls>
<source src="video.mp4" type="video/mp4">
</video>
</body>
</html>
html展示页面,嵌入video.html,且div宽高自适应,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Iframe自动匹配高度</title>
<style>
*,body,html{
margin: 0;
padding: 0;
overflow: hidden;
}
body{
background-color: brown;
}
iframe{
margin: 0;
padding: 0;
overflow: hidden;
}
.container{
/** 水平居中**/
margin: 0 auto;
}
</style>
<script>
function autoIframeHeight() {
let iframe = document.getElementById('myIframe');
let width = 0;
let height = 0;
try {
let bWidth = iframe.contentWindow.document.body.scrollWidth;
let bHeight = iframe.contentWindow.document.body.scrollHeight;
let dWidth = iframe.contentWindow.document.documentElement.scrollWidth;
let dHeight = iframe.contentWindow.document.documentElement.scrollHeight;
width = Math.max(bWidth, dWidth);
height = Math.max(bHeight, dHeight);
} catch (ex) {
// cross-domain iframe security error
}
iframe.style.width = width + 'px';
iframe.style.height = height + 'px';
console.log("iframe的宽度:",iframe.style.width);
console.log("iframe的高度:",iframe.style.height);
var container = document.getElementById('container');
container.style.width = width + "px";
container.style.height = height + 'px';
console.log("div的宽度:",container.style.width);
console.log("div的高度:",container.style.height);
}
</script>
</head>
<body>
<div class="container" id="container">
<iframe id="myIframe" style="border: none;" scrolling="no"
src="video.html"
onload="autoIframeHeight()">
</iframe>
</div>
</body>
</html>
跨域嵌套自适应宽高,内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Iframe自动匹配高度</title>
<style>
*,body,html{
margin: 0;
padding: 0;
overflow: hidden;
}
body{
background-color: brown;
}
iframe{
margin: 0;
padding: 0;
overflow: hidden;
}
.container{
/** 水平居中**/
margin: 0 auto;
}
</style>
<script>
function autoIframeHeight() {
var iframe = document.getElementById('myIframe');
var container = document.getElementById('container');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var outerDoc = iframe.ownerDocument || document;
var innerWidth = innerDoc.body.scrollWidth;
var innerHeight = innerDoc.body.scrollHeight;
var outerWidth = outerDoc.defaultView.innerWidth;
var outerHeight = outerDoc.defaultView.innerHeight;
iframe.style.width = innerWidth + 'px';
iframe.style.height = innerHeight + 'px';
console.log("iframe的宽度:",iframe.style.width);
console.log("iframe的高度:",iframe.style.height);
container.style.width = innerWidth + 'px';
container.style.height = innerHeight + 'px';
console.log("div的宽度:",container.style.width);
console.log("div的高度:",container.style.height);
}
</script>
</head>
<body>
<div class="container" id="container">
<iframe id="myIframe" style="border: none;" scrolling="no"
src="video.html"
onload="autoIframeHeight()">
</iframe>
</div>
</body>
</html>
- 上一篇: 直播背后的原理是?初识视频流协议 HLS 和 RTMP
- 下一篇: 你可能还不知道到的几个HTML属性
猜你喜欢
- 2024-11-27 video.js中文文档(三):设置
- 2024-11-27 高级前端进阶:我是如何把 C/C++ 代码跑在浏览器上的?
- 2024-11-27 原生微信小程序video隐藏控件超级方法
- 2024-11-27 浏览器播放rtsp视频流解决方案
- 2024-11-27 第49节 DOM2和DOM3-Javascript-王唯
- 2024-11-27 使用AI CoNR 算法,仅仅利用4张动漫图片——便可以创建舞蹈视频
- 2024-11-27 WebRTC是如何实现音视频的录制
- 2024-11-27 WebAssembly该怎么学第二篇
- 2024-11-27 WebRTC录采集平面数据
- 2024-11-27 JAVA全栈CMS系统vue图片/视频上传组件,多图上传及删除功能11
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)