转:iframe加载的子页面里面获取父级元素窗口以及元素的高度

iframe里的js要操作父级窗口的dom,必须搞懂几个对象:

  1. parent是父窗口(如果窗口是顶级窗口,那么parent==self==top)
  2. top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe)
  3. self是当前窗口(等价window)

父级页面:index.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>父窗口</title>
</head>
<body style="width:2000px;">
    <div id="demo" style="height:40px;"></div>
    <iframe src="children.html"></iframe>
</body>
</html>

子窗口:children.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>子窗口</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
$(function(){
    var p_window = window.top;
    alert($(p_window).height());
    var p_demo = window.top.document.getElementById(‘demo‘);
    alert($(p_demo).height());
})
</script>
</body>
</html>

说明:

  1. 这里使用jquery库,方便开发。
  2. 获取父窗口节点信息只能用js原生态的方法和属性
  3. 获取父级窗口的高度:首先获取父窗口的dom节点,然后通过jquery库的$方法转变为Jquery对象,通过jquery的html()方法输出父窗口的高度;
  4. 获取父级元素的高度:首先获取父窗口中ID=“demo”元素的dom节点,然后通过jquery库的$方法转变为Jquery对象,通过jquery的html()方法输出ID=“demo”元素的高度;
  5. PS:既然能获取,当然也能修改其中的属性或者内容……

文章转载自:问说 »iframe加载的子页面里面获取父级元素窗口以及元素的高度

时间: 2024-12-24 09:39:42

转:iframe加载的子页面里面获取父级元素窗口以及元素的高度的相关文章

PHP 根据子ID递归获取父级ID,实现逐级分类导航效果

代码: //当前路径 $cate=M('wangpan_class')->select(); function get_top_parentid($cate,$id){ $arr=array(); foreach($cate as $v){ if($v['id']==$id){ $arr[]=$v;// $arr[$v['id']]=$v['name']; $arr=array_merge(get_top_parentid($cate,$v['fid']),$arr); } }return $a

js获取iframe中的元素以及在iframe中获取父级的元素(包括iframe中不存在name和id的情况)

第一种情况:iframe中不存在name和id的方法:(通过contentWindow获取) var iframe = document.getElementsByTagName('iframe')[0];var ifr_document = iframe.contentWindow.document;//iframe中的文档内容 或者: var _iframe = document.getElementByIdx_x('iframeId').contentWindow; var _div =_

异步操作执行后子页面重新修改父页面iframe高度

子页面加入ajax全局方法: <script language="javascript" type="text/javascript"> $(document).ready(function () {//异步请求加载完成 $.ajaxSetup({ 'complete': function () { //修改iframe高度 reSizeParentIframe(); } }); }); </script> 修改iframe高度: //子页面

跨域加载脚本或页面获取内容

$.extend({     /**     * 跨域装载JS脚本,获取页面窗口对象,从而获得DOM内容     * @param string url 需要读取的脚本地址     * @param function callback 回调函数,参数为载入后的窗口win对象     * @param string charset 指定字符编码     */     'crossGetScript':function(url,callback,charset){                  

Ext2.0之Tabpanel AJAX远程加载多标签页面模式开发技巧

目前开发的方式是采用远程load页面来实现多页面效果,类似于126邮箱多标签页效果.但是比126邮箱的方式更好,因为页面打开后是load到本地的,126似乎还会重新请求.在近期项目该开发方式已经基本成熟,积累了一些经验,与各位开发者共享和讨论. 该方式的页面布局为:一个bodylayout,左边为导航树,下方为信息框.上部为企业或系统LOGO.center为一个tabpanel,tabpanel远程加载页面(不清楚AJAX远程加载的请查阅EXT API之panel的autoLoad方法). 由于

jQuery oLoader实现的加载图片和页面效果

oLoader使用方法 不管是oLoader还是oPageLoader都是基于jQuery,所以调用前请先加载jquery库,作者已经将两个插件集成到一起:jquery.oLoader.min.js,已经打包好请戳源码下载. 调用jQuery oLoader非常简单,一句话如下: [js] view plaincopy $('#element').oLoader(); 使用oLoader加载图片: [js] view plaincopy $(function(){ $('img').oLoade

iframe加载onload之坑

需求:点击按钮,下载一个文件,由于种种原因,需要借助iframe实现. 实现:点击按钮往页面上append一个iframe,将iframe的src设置为文件的url路径,实现下载.如果url不对或文件下载失败,提示下载失败. 畅想:iframe.onload=function(){ //下载成功:}      iframe.onerror = function(){ //下载失败 } 问题:想的挺好,可惜浏览器有意见.经测试,火狐及chorme都不支持onerror事件,而且,不管iframe加

JS iFrame 加载慢怎么解决

在项目中经常要动态添加iframe,然后再对添加的iframe进行相关操作,有时候会遇到iframe加载很慢什么原因呢,该如何解决呢?带着这个问题一起通过本文学习,寻找答案吧! aaa.html <HTML> <HEAD> <TITLE>aaa</TITLE> </HEAD> <BODY> <IFRAME src="bbb.html" name=bbb width="100%" heigh

百度地图多点路径加载以及调整页面js

1 $(document).ready(function () { 2 /*用正则表达式获取url传递的地址参数,split后获得地址数组*/ 3 bmap = new BMap.Map('mapcontainer'); 4 var point = new BMap.Point(116.404, 39.915);//地图中心点 5 bmap.centerAndZoom(point, 15);//调整缩放以及设立中心点 6 bmap.enableScrollWheelZoom(); 7 var l