iframe框架用JavaScript子页面控制父页面
作者:zishu 来源:zishu博客 发布时间:2009-01-19 13:43:00
标签:iframe,JavaScript,框架,父
parent.html 中的代码为:
<iframe marginwidth="0" framespacing="0" marginheight="0" frameborder="0"
name="uploadframe" id="uploadframe" src="c.html" scrolling="no" width="100" height="100" ></iframe>
如想在c.html 中写一些代码去改变parent.html 中的一些内容,以下代码可作为参考:
1、parent.window.frames 可返回parent.html 中所有的iframe;返回结果应该是一个数组,用parent.window.frames[iframeId]可得到iframeId;
2、用parent.document.getElementById('xxxx')可得到父里的xxxx,并改变相应的值,例如:parent.document.getElementById('xxxx').className = 'test';
3、如果我想在父中再创建一个元素,直接用parent.appendChild(yyyy)在firefox中是可以的,但在IE(最起码IE6)是不行的; 所以,要把创建这个动作放在父中来完成,在子中调用;
例如:父中的代码为:
function addIframe(vNum){
var iframe = document.createElement("iframe");
iframe.setAttribute("marginwidth", "0");
iframe.setAttribute("framespacing", "0");
iframe.setAttribute("marginheight", "0");
iframe.setAttribute("frameborder", "0");
iframe.setAttribute("name", vNum);
iframe.setAttribute("id", vNum);
iframe.setAttribute("src", "http://www.zishu.cn");
iframe.setAttribute("scrolling", "no");
iframe.setAttribute("width", "100");
iframe.setAttribute("height", "100");
document.getElementsByTagName('body')[0].appendChild(iframe);
return;
}
子中可以这样调用:
<script>
parent.addIframe('xxxx');
</script>
这样就能完整创建一个元素了;
4、同理,如果我想在子中把iframe给隐藏,本来想直接用parent.document.getElementById('uploadframe').style.display = 'none';来弄,但无论是在IE还是FIREFOX中,都是行不通的;只能用上边的方法把动作放在父中。


猜你喜欢
- sql 使用系统存储过程 sp_send_dbmail 发送电子邮件语法:sp_send_dbmail [ [ @profile_name
- 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内):[^\x00-\xff] <script&
- 英文文档:locals()Update and return a dictionary representing the current l
- 引言:在Python3下运行Matplotlib之时,碰到了”No module named _tkinter“的问题,花费数小时进行研究解
- 本文实例讲述了Python实现求两个数组交集的方法。分享给大家供大家参考,具体如下:一、题目给定两个数组,编写一个函数来计算它们的交集。例1
- 一、ESlint+Vetur 实现ESlint代码规范二、重点----旧版本(旧版本配置在setting.json 会出现警告){“esli
- 说到客户端数据存储,可能第一时间想到的是cookies,这是一种网站常见的存储数据的方法。它的最大优点是兼容性好,几乎所有浏览器都具有这个功
- 1. Python中lib、package和module的关系module:以.py为结尾的文件都是模块。package:就是一个带__in
- Python 做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件
- 写完“无序列表”和“有序列表”之后已经有人和我说这两篇看得没什么意思。这两篇文章如果只以单向读取的形式阅读那么的确是没什么意思,但是这两篇重
- 无参修饰 ,无参数时不需要调用def log1(func): func()@log1def test(): prin
- 第一节:WAP的潜能 这些日子,我们常听到WAP技术,一种手机上网的技术。从技术上讲,移动电话不可能和PC来竞争,移动电话的屏幕只能容下很少
- 一、添加user到group第一种:user.groups.add(1) # add by id第二种:from django.contri
- 1、安装setuptools命令如下:wget --no-check-certificate https://pypi.python.org
- 此教程适合有pandas基础的童鞋来看,很多知识点会一笔带过,不做详细解释Pandas数据格式SeriesDataFrame:每个colum
- 本文实例总结了python中日期和时间格式化输出的方法。分享给大家供大家参考。具体分析如下:python格式化日期时间的函数为datetim
- 我就废话不多说了,还是直接看代码吧!from time import ctimeimport threadingimport timedef
- 本文实例讲述了Codeigniter控制器controller继承问题。分享给大家供大家参考,具体如下:在项目中经常用到这样一种情况,后台中
- 其实相信每个和mysql打过交道的程序员都应该会尝试去封装一套mysql的接口,这一次的封装已经记不清是我第几次了,但是每一次我希望都能做的
- 关于主机名转IP地址只记住两点即可:1、英特网协议一直都是用4字节的IP将包转发给目的地;2、至于主机名是如何转换成IP地址的,这是操作系统