不是专业人士,只说自己的一些看法.
对于iframe 的高度设置,如果父和子都能操作,那么可以在父或子中执行.一般是通过iframe的id来获取对象进行设置:父页面:

window.onload=function() {var doc = document.getElementById("ifDemo")var docWin = doc.contentWindow || iframe.contentDocument.parentWindow; //子内容对象var height = docWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; //子内容高度doc.height = height;

子页面:

                var obj = window.parent.document.getElementById("ifDemo");var cHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);var sHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);var height = Math.max(cHeight, sHeight);obj.height=height;

还有一种,是只能操作子页面,而且还不知道父页面中iframe的id或name,或class等信息,可以通过parent.frames;获取父页面中iframe数组信息,然后通过src来匹配

               var frames=parent.frames;var herf=window.location.href;var obj;for(var i=0;i<frames.length;i++){if(herf==frames[i].frameElement.src){obj=frames[i].frameElement;break;}}if(obj==undefined){return;}var cHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);var sHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);var height = Math.max(cHeight, sHeight);//alert(cHeight+","+sHeight+","+height)obj.height = height;

父页面

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>iframe高度问题</title><script type="text/javascript" src="js/jquery-3.3.1.min.js"></script><script>/** iframe子页面高度*  window.onload=function() {var doc = document.getElementById("ifDemo")var docWin = doc.contentWindow ||                                 iframe.contentDocument.parentWindow; //子内容对象var height = docWin.document.documentElement.scrollHeight || iframeWin.document.body.scrollHeight; //子内容高度doc.height = height;}*////水印$(document).ready(function(e) {  var iframe = document.getElementById("ifDemo3");if(iframe.attachEvent) {iframe.attachEvent("onload", function() {//iframe加载完成后你需要进行的操作  watermark(getNow());});} else {iframe.onload = function() {//iframe加载完成后你需要进行的操作  watermark(getNow());};}})/*** 水印* @param {Object} settings*/function watermark(settings) {//默认设置var defaultSettings = {watermark_txt: settings,watermark_x: 20, //水印起始位置x轴坐标watermark_y: 20, //水印起始位置Y轴坐标watermark_rows: 0, //水印行数watermark_cols: 0, //水印列数watermark_x_space: 100, //水印x轴间隔watermark_y_space: 50, //水印y轴间隔watermark_color: '#aaa', //水印字体颜色watermark_alpha: 0.4, //水印透明度watermark_fontsize: '15px', //水印字体大小watermark_font: '微软雅黑', //水印字体watermark_width: 220, //水印宽度watermark_height: 80, //水印长度watermark_angle: 20 //水印倾斜度数};if(arguments.length === 1 && typeof arguments[0] === "object") {var src = arguments[0] || {};for(key in src) {if(src[key] && defaultSettings[key] && src[key] === defaultSettings[key]) continue;else if(src[key]) defaultSettings[key] = src[key];}}var oTemp = document.createDocumentFragment();//获取页面最大宽度var page_width = Math.max(document.body.scrollWidth, document.body.clientWidth);var cutWidth = page_width * 0.0150;var page_width = page_width - cutWidth;//获取页面最大高度var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight); //+ 450;page_height = Math.max(page_height, window.innerHeight - 30);//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔if(defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) {defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space));defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));}//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔if(defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) {defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));}var x;var y;for(var i = 0; i < defaultSettings.watermark_rows; i++) {y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;for(var j = 0; j < defaultSettings.watermark_cols; j++) {x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;var mask_div = document.createElement('div');mask_div.id = 'mask_div' + i + j;mask_div.className = 'mask_div';mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));//设置水印div倾斜显示mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";mask_div.style.visibility = "";mask_div.style.position = "absolute";mask_div.style.left = x + 'px';mask_div.style.top = y + 'px';mask_div.style.overflow = "hidden";mask_div.style.zIndex = "9999";//让水印不遮挡页面的点击事件mask_div.style.pointerEvents = 'none';mask_div.style.opacity = defaultSettings.watermark_alpha;mask_div.style.fontSize = defaultSettings.watermark_fontsize;mask_div.style.fontFamily = defaultSettings.watermark_font;mask_div.style.color = defaultSettings.watermark_color;mask_div.style.textAlign = "center";mask_div.style.width = defaultSettings.watermark_width + 'px';mask_div.style.height = defaultSettings.watermark_height + 'px';mask_div.style.display = "block";oTemp.appendChild(mask_div);};};document.body.appendChild(oTemp);}function getNow() {var d = new Date();var year = d.getFullYear();var month = change(d.getMonth() + 1);var day = change(d.getDate());var hour = change(d.getHours());var minute = change(d.getMinutes());var second = change(d.getSeconds());function change(t) {if(t < 10) {return "0" + t;} else {return t;}}var time = year + '年' + month + '月' + day + '日 ' + hour + '时' + minute + '分' + second + '秒';return time;}</script></head><body><h1>父页面</h1><div>白日依山尽</div><div>黄河入海流</div><div>如穷千里目</div><div>快买摄像头</div><div><iframe id="ifDemo" src="test02.html"></iframe></div><h1>父页面</h1><div>床前明月光</div><div>疑是地上霜</div><div>举头望明月</div><div>低头在他乡</div><div><iframe id="ifDemo2" src="test03.html"></iframe></div><h1>父页面</h1><div>独在异乡为异客</div><div>每逢佳节倍思亲</div><div>遥知兄弟登高处</div><div>何日拆字幸我门</div><div><iframe id="ifDemo3" src="test04.html"></iframe></div></body></html>

子页面一

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>iframe高度问题</title><script>window.onload = function() {var obj = window.parent.document.getElementById("ifDemo");var cHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);var sHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);var height = Math.max(cHeight, sHeight);//alert(cHeight+","+sHeight+","+height)obj.height=height;}</script></head><body><h1>子页面</h1><div>妹喜</div><div>妲己</div><div>褒姒</div><div>夏姬</div><div>孟姜女</div><div>赵飞燕</div><div>貂蝉</div><div>大桥</div><div>小乔</div><div>绿珠</div><div>谢道韫</div><div>李祖娥</div><div>杨玉环</div><div>李师师</div><div>陈圆圆</div><div>香妃</div></body></html>```子页面二```handlebars
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>iframe高度问题</title><script>window.onload = function() {//知道父页面iframeid//var obj = window.parent.document.getElementById("ifDemo2");//不知道父页面id和namevar frames=parent.frames;var herf=window.location.href;var obj;for(var i=0;i<frames.length;i++){if(herf==frames[i].frameElement.src){obj=frames[i].frameElement;break;}}if(obj==undefined){return;}var cHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);var sHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);var height = Math.max(cHeight, sHeight);//alert(cHeight+","+sHeight+","+height)obj.height = height;}</script></head><body><h1>子页面2</h1><div>夏启</div><div>商汤</div><div>姬发</div><div>嬴政</div><div>刘邦</div><div>刘秀</div><div>曹丕</div><div>刘备</div><div>孙权</div><div>司马炎</div><div>司马睿</div><div>刘裕</div><div>萧道成</div><div>萧衍</div><div>陈霸先</div><div>杨坚</div><div>李渊</div><div>朱温</div><div>李存勖</div><div>石敬瑭</div><div>刘知远</div><div>郭威</div><div>赵匡胤</div><div>完颜构</div><div>忽必烈</div><div>朱元璋</div><div>努尔哈赤</div></body></html>

子页面三

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>iframe高度问题</title><script>window.onload = function() {var obj = window.parent.document.getElementById("ifDemo3");var cHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight);var sHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);var height = Math.max(cHeight, sHeight);//alert(cHeight+","+sHeight+","+height)obj.height=height;}</script></head><body><h1>子页面3</h1><div>燧人氏</div><div>有巢氏</div><div>伏羲</div><div>女娲</div><div>神农</div><div>皇帝</div><div>蚩尤</div><div>颛顼</div><div>帝喾</div><div>少昊</div><div>唐尧</div><div>虞舜</div><div>夏禹</div><div></div><div></div><div></div><div>西汉</div><div>东汉</div><div></div><div></div><div></div><div>西晋</div><div>东晋</div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div>北宋</div><div>契丹</div><div>西夏</div><div></div><div>南宋</div><div></div><div></div><div></div></body></html>

iframe高度设置demo以及水印的简单添加相关推荐

  1. 纯css实现iframe高度自适应

    当我们转载文章或者发布文章时经常会需要用iframe标签引入视频或者网页,但是用iframe标签引入视频最大的一个问题就是无法自适应高度,宽度不是什么大问题,只有我们在iframe标签中加入width ...

  2. 如何设置iframe高度自适应,在跨域的情况下能做到吗?

    2019独角兽企业重金招聘Python工程师标准>>> 在页面上使用iframe来动态加载页面内容是网页开发中比较常见的方法.在父页面中给定一个不带滚动条的iframe,然后对属性s ...

  3. 设置iframe高度的问题

    对于iframe高度的问题,需要分两类,第一种是同域的父页面和子页面解决方法是 假如iframe的ID是iframeExp var newIframe = docment.getElementById ...

  4. iframe 高度100%时,出现垂直滚动条

    问题 需求是这样的,iframe在一个div中,并且iframe高度与div一样,所以设置了iframe高度是100%,结果div出现了滚动条,在排除了padding.margin的因素外,还是有滚动 ...

  5. 6种iframe高度自适应的方法

    js自适应高度,实际上就是设置iframe的高度,设置等于内嵌网页的高度,从而看不到滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用.我们可以通过css来给它直接定义一个高度,同样可以实现上面的需 ...

  6. iframe高度动态自适应

    参考:http://www.zhangxinxu.com/wordpress/?p=1294 一.前言碎碎念 我从来对iframe就没有什么好感,对其基本上是不屑一顾.但是人在江湖,身不由己.经理发话 ...

  7. Iframe高度自适应(兼容IE/Firefox、同域/跨域)

    在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...

  8. 真正解决iframe高度自适应问题

    1.前言 解决iframe高度自适应问题有两种方法 1.pym 2.手动设置iframe的高度 本文主要是总结第二种实现方式,因为第一种pym.js插件我没用懂 如果使用iframe时,遇到以下的需求 ...

  9. iframe高度宽度自适应

    最近在项目中用到了iframe,写出来做个记录,能帮到大家最好. 一.首先简单介绍一下iframe iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 所有浏览器都支持 <ifr ...

最新文章

  1. 去除字符串中重复字符
  2. ubuntu 搜索文件方法(find命令)
  3. servlet destroy 示例_KET答题卡怎么填写?2020年KET答题卡填涂示例
  4. 调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...
  5. java和cnc_Java程序员的目标,你都达到了多少条?
  6. 搜狐视频怎么开启青少年模式
  7. SpringMVC+DWR + Hibernate + 菜单树
  8. Java Android未捕获异常处理机制
  9. leetcode python3 简单题203. Remove Linked List Elements
  10. new Date()浏览器兼容性问题
  11. PHPExcel存放多个sheet报错:Invalid character found in sheet title
  12. HTTP 的概念、原理、工作机制、数据格式和REST(HenCoder学习总结,待整理中...)
  13. linux 图形设计软件,Ubuntu下使用Blender 3D图形专业设计工具
  14. 读“DataBase Sharding at Netlog”,看DataBase Scale Out
  15. 淘宝双十一最强星秀猫组队人气比拼活动规则和攻略
  16. word操作之docx转doc出现公式变图片问题的解决方案
  17. mc服务器libs文件夹,我的世界为什么开不了服务器
  18. Linux 环境将cert证书转为pem格式
  19. 【深度学习】图网络——悄然兴起的深度学习新浪潮
  20. 《乔布斯传》英文原著重点词汇笔记(十一)【 chapter nine】

热门文章

  1. mysql中lock tables与unlock tables(锁表/解锁)
  2. Laravel artisan命令
  3. SQL uniqueidentifier
  4. c语言 struct结构体大小计算方法
  5. 计算机计算填充快捷键,excel表格计算器快捷键.doc
  6. 云计算P2V的迁移过程
  7. contextpath(contextpath)
  8. Win7系统常见故障深度分析
  9. ceph RADOS架构 monitor
  10. go语言反射机制、reflect.TypeOf、 reflect.ValueOf、字符串处理(详解)