iframe高度设置demo以及水印的简单添加
不是专业人士,只说自己的一些看法.
对于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以及水印的简单添加相关推荐
- 纯css实现iframe高度自适应
当我们转载文章或者发布文章时经常会需要用iframe标签引入视频或者网页,但是用iframe标签引入视频最大的一个问题就是无法自适应高度,宽度不是什么大问题,只有我们在iframe标签中加入width ...
- 如何设置iframe高度自适应,在跨域的情况下能做到吗?
2019独角兽企业重金招聘Python工程师标准>>> 在页面上使用iframe来动态加载页面内容是网页开发中比较常见的方法.在父页面中给定一个不带滚动条的iframe,然后对属性s ...
- 设置iframe高度的问题
对于iframe高度的问题,需要分两类,第一种是同域的父页面和子页面解决方法是 假如iframe的ID是iframeExp var newIframe = docment.getElementById ...
- iframe 高度100%时,出现垂直滚动条
问题 需求是这样的,iframe在一个div中,并且iframe高度与div一样,所以设置了iframe高度是100%,结果div出现了滚动条,在排除了padding.margin的因素外,还是有滚动 ...
- 6种iframe高度自适应的方法
js自适应高度,实际上就是设置iframe的高度,设置等于内嵌网页的高度,从而看不到滚动条和嵌套痕迹.对于用户体验和网站美观起着重要作用.我们可以通过css来给它直接定义一个高度,同样可以实现上面的需 ...
- iframe高度动态自适应
参考:http://www.zhangxinxu.com/wordpress/?p=1294 一.前言碎碎念 我从来对iframe就没有什么好感,对其基本上是不屑一顾.但是人在江湖,身不由己.经理发话 ...
- Iframe高度自适应(兼容IE/Firefox、同域/跨域)
在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此. 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固 ...
- 真正解决iframe高度自适应问题
1.前言 解决iframe高度自适应问题有两种方法 1.pym 2.手动设置iframe的高度 本文主要是总结第二种实现方式,因为第一种pym.js插件我没用懂 如果使用iframe时,遇到以下的需求 ...
- iframe高度宽度自适应
最近在项目中用到了iframe,写出来做个记录,能帮到大家最好. 一.首先简单介绍一下iframe iframe 元素会创建包含另外一个文档的内联框架(即行内框架). 所有浏览器都支持 <ifr ...
最新文章
- 去除字符串中重复字符
- ubuntu 搜索文件方法(find命令)
- servlet destroy 示例_KET答题卡怎么填写?2020年KET答题卡填涂示例
- 调了 好几天的问题 treeview 的js 处理复选框之间的关系,选中子框父框自动选中,单独执行 没问题 放到框架页里 就有问题...
- java和cnc_Java程序员的目标,你都达到了多少条?
- 搜狐视频怎么开启青少年模式
- SpringMVC+DWR + Hibernate + 菜单树
- Java Android未捕获异常处理机制
- leetcode python3 简单题203. Remove Linked List Elements
- new Date()浏览器兼容性问题
- PHPExcel存放多个sheet报错:Invalid character found in sheet title
- HTTP 的概念、原理、工作机制、数据格式和REST(HenCoder学习总结,待整理中...)
- linux 图形设计软件,Ubuntu下使用Blender 3D图形专业设计工具
- 读“DataBase Sharding at Netlog”,看DataBase Scale Out
- 淘宝双十一最强星秀猫组队人气比拼活动规则和攻略
- word操作之docx转doc出现公式变图片问题的解决方案
- mc服务器libs文件夹,我的世界为什么开不了服务器
- Linux 环境将cert证书转为pem格式
- 【深度学习】图网络——悄然兴起的深度学习新浪潮
- 《乔布斯传》英文原著重点词汇笔记(十一)【 chapter nine】
热门文章
- mysql中lock tables与unlock tables(锁表/解锁)
- Laravel artisan命令
- SQL uniqueidentifier
- c语言 struct结构体大小计算方法
- 计算机计算填充快捷键,excel表格计算器快捷键.doc
- 云计算P2V的迁移过程
- contextpath(contextpath)
- Win7系统常见故障深度分析
- ceph RADOS架构 monitor
- go语言反射机制、reflect.TypeOf、 reflect.ValueOf、字符串处理(详解)