JS中FRAME的操作问题实例分析

本文实例探讨了JS中FRAME的操作问题,分享给大家供大家参考。具体分析如下:

以上图为例,在这里把frame之间的互相操作简单列为:1变量2方法3页面之间元素的互相获取。

一、  首先从 父(frameABC)------->子(frameA,frameB,frameC)

① 访问变量名name

假如在frameABC中操作那么可以:

代码如下:

window.frames("frameA").contentWindow.name

或者

代码如下:

document.getElementById("frameA").contentWindow.name

或者

代码如下:

jquery:window.$("#frameA")[0].contentWindow.name

② 访问方法func

假如在frameABC中操作那么可以:

代码如下:

window.frames("frameA").contentWindow.func();

或者

代码如下:

document.getElementById("frameA").contentWindow.func();

或者

代码如下:

jquery:window.$("#frameA")[0].contentWindow.func();

③ 访问子页面元素:username

假如在frameABC中操作那么可以:

代码如下:

window.frames("frameA").contentWindow.document.getElementById("username");

或者

代码如下:

document.getElementById("frameA").contentWindow.document.getElementById("username");

或者

代码如下:

jquery:window.$("#frameA")[0].contentWindow.$("#username");

二、 然后从子(frameA,frameB,frameC)------------>到父(frameABC)

① 访问父页面变量name,假如在frameA中(子页面)操作那么可以:

代码如下:

window.parent.name;

② 访问父页面方法func,假如在frameA中(子页面)操作那么可以:

代码如下:

window.parent.func();

③ 访问父页面元素username,假如在frameA中(子页面)操作那么可以:

代码如下:

window.parent.$("#username")

或者:

代码如下:

window.parent.document.getElementById("username");

总结:

frame只是一个页面框架,要想操作子frame中的元素都需要首先进入到window或者contentWindow。从子页面访问父页面,需要计算好父子关系,分几层结构。

在网上看了其他帖子,谈到有关页面加载的问题。大概意思是在子frame页面还没加载出来就进行元素操作,会引起bug,感兴趣的朋友可以针对性的测试一下,相信会有新的收获!

希望本文所述对大家的javascript程序设计有所帮助。

(0)

相关推荐

  • js调用iframe实现打印页面内容的方法

    1.程序说明 1) 此程序可以实现选择页面中的区域进行打印,以iframe方式进行打印:2) 与原生态的print() 区别在于,取消打印页面后可以完整保留当前访问页面的内容. 2.代码部分 1) JS 函数: 复制代码 代码如下: function do_print(id_str)//id-str 打印区域的id{var el = document.getElementById(id_str);var iframe = document.createElement('IFRAME');var

  • js控制iframe的高度/宽度让其自适应内容

    复制代码 代码如下: <mce:script language= "Javascript "><!-- window.onload=function() { parent.document.all("iframe1").style.height = document.body.scrollHeight; parent.document.all("iframe1").style.width = document.body.scro

  • JS操作iframe里的dom(实例讲解)

    直接赋值如下代码测试即可明白: 1.html: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>&l

  • jquery、js调用iframe父窗口与子窗口元素的方法整理

    1. jquery 在iframe子页面获取父页面元素代码如下: $("#objid", parent.document) 2. jquery在父页面 获取iframe子页面的元素 代码如下: $("#objid",document.frames('iframename').document) 3.js 在iframe子页面获取父页面元素代码如下: indow.parent.document.getElementByIdx_x("元素id");

  • js取得html iframe中的元素和变量值

    上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知: 不能用$(document).ready()方法,而是要用$("#iframeId").load()方法,待iframe加载完成,才能取得 取iframe中的js变量值: document.frames['x'].y 这样便可以. 哎,很简单的问题,搞了很长时间,不应该啊!

  • js函数在frame中的相互调用详解

    框架间的互相引用 一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合,这和表单对象.链接对象.图片对象等是类似的,不同的是,这些集合是document的属性.因此,要引用一个子框架,可以使用如下语法: 复制代码 代码如下: window.frames["frameName"];window.frames.frameNamewindow.frames[index] 其中,window字样也可以用self代替或省略,

  • 禁止iframe页面的所有js脚本如alert及弹出窗口等

    今天做一个小软件遇到一个问题,就是在一个页面里面需要放一个iframe框架来预览网站,可是被预览的这个网站中含有很多js脚本,如弹出窗口,提示框,最可恶的是一直让设为首页和加入收藏,我想应该有办法禁止iframe里面的脚本吧,于是百度了一下,还发现不少新大陆,于是解决了这个问题,记录下来,方便以后查询,也方便大家参考: <iframe src="fillseo.html"></iframe> fillseo.html里面有个js脚本,其中有alert,还有弹出窗

  • js判断iframe内的网页是否滚动到底部触发事件

    之前有个需求是要判断iframe内的网页是否滚动到底部触发事件, 网上找了许多资料都是说在当前页面下的, 索性就自己研究了一下, 找到了解决方法. clientHeight:这个元素的高度,占用整个空间的高度 offsetHeight:是指元素内容的高度 scrollTop:可以理解为滚动条可以滚动的长度 以下是源代码 复制代码 代码如下: <iframe src="~/Files/3.html" id="iframepage" width="825

  • js操作iframe父子窗体示例

    父窗体获取iframe window.iframeId iframe获取父窗口 window.parent parent.html 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=&qu

  • iframe子页面与父页面在同域或不同域下的js通信

    iframe子页面与父页面通信根据iframe中src属性是同域链接还是跨域链接,通信方式也不同. 一.同域下父子页面的通信 父页面parent.html 复制代码 代码如下: <html> <head> <script type="text/javascript"> function say(){ alert("parent.html"); } function callChild(){ myFrame.window.say()

  • 兼容主流浏览器的iframe自适应高度js脚本

    兼容主流浏览器的 Iframe 自适应高度,js脚本如下: 复制代码 代码如下: //iframe 高度自适应 function iframeAutoFit(iframeObj) { setTimeout(function () { if (!iframeObj) return; iframeObj.height = (iframeObj.Document ? iframeObj.Document.body.scrollHeight : iframeObj.contentDocument.bod

  • js动态创建上传表单通过iframe模拟Ajax实现无刷新

    复制代码 代码如下: <script> window.onload=function(){ upfile('file.php'); } /* ** url 路径 **/ function upfile(url){ //创建iframe var iframe = document.createElement("iframe"); document.body.appendChild(iframe); iframe.id = 'iframeName'; iframe.name =

随机推荐