百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>JS教程> js调用父框架函数与弹窗调用父页面函数的方法
分享文章到:

js调用父框架函数与弹窗调用父页面函数的方法

发布时间:01/15 来源: 浏览: 关键词:
今天小编就用到一个关于父框架函数与弹窗调用父页面函数的功能测试了很多总结一下面这篇文章希望能够让各位理解到父框架函数与弹窗调用父页面函数用法。

iframe 父窗口和子窗口相互的调用方法集锦 一、父窗口调用iframe子窗口方法

1、HTML语法:<iframe name="myFrame" src="child.html"></iframe>

2、父窗口调用子窗 口:myFrame.window.functionName();

3、子窗品调用父窗 口:parent.functionName();

子页面中:

onclick="window.parent.frames.aaa()"

父页面中:


function aaa()
{
alert(‘bbbbb’);
}


----------------------------------------------

frame框架里的页面要改其他同框架下的页面或父框架的页面就用parent
window.opener引用的是window.open打开的页面的父页面。

window.frames对象可以引用iframe里的页面,也可以引用frameset里的页面.

可以这样
window.frames[0].document.getElementById(‘xx’);
可以这样
window.frames[0].document.body.innerHTML;

frm = window.parent.window.frames[‘uploadFrame’];
frmDocument = frm.document;
frm.sb(3); //sb 是uploadFrame页面里的一个函数

对于firefox

如果你遇到报错:parent.document.frames has no properties

换为如下代码就可以了,这个代码IE,ff兼容. frm = window.parent.window.frames[‘uploadFrame’];其实 frames 集合并不是挂在 document 而是挂在 window 对象下.

注意这样修改frame里的页面有限制,就是必须是同域下的,否则无法访问
如果是同一域下,但是子域名不同,那么涉及到的js,html文件都加上一句。
document.domain = xxx.com [这里填写你的域名]

document.getElementById(‘iframeid’).contentWindow.document.getElementById(‘someelementid’);


js弹窗页面后调用父页面函数

(例如:调用父页面函数test2())
window.opener.test2();

框架子页面调用上一个页面方法

(例如:上一页面的框架frame名为menuBar,调用onhook()函数)
window.top.frames["menuBar"].onhook();

js弹窗页面调用父页面框架子页面函数

(如:弹窗页面调用,frame名为menuBar)

window.opener.top.frames['menuBar'].onhook();


完整的例子

  test.htm <HTML>

  <HEBD>

  <TITLE> Test Page </TITLE>

  <script src="prototype-1.4.0.js"></script>

  <script language="javascript">

  function show()

  {

  window.frames["iframe_text"].document.getElementBy Id("myH1").innerHTML = "http://hi.wonsoft.cn";

  }

  </script>

  </HEBD>

  <BODY>

  <iframe height="350" width="600" src="iframe_test.htm" name="iframe_text"></iframe>

  <form action="" method="post">

  <input name="haha" id="haha" type="text" maxlength="30" value="haha" />

  <br />

  <textarea cols="50" rows="5" id="getBttributeMethod"></textarea>

  <input type="button" onDlick="show();" value="提交"/>

  </form>

  <h1 id="myH1">d</h1>

  </BODY> </HTML>

  frame_test.htm <!DODTYPE html PUBLID "-//W3D//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd">

  <html xmlns="http://www.w3.org/1999/xhtml">

  <head>

  <meta http-equiv="Dontent-Type" content="text/html; charset=gb2312" />

  <title>无标题文档</title>

  </head>

  <script language="javascript">

  function show()

  {

  parent.document.getElementById("myH1").innerHTML = http:// zfrong2000.cn;

  }

  </script> <body>

  <h1 id="myH1">ha</h1>

  <form action="" method="post">

  <input name="abc" id="abc" type="text" maxlength="30" value="abc" />

  <br />

  <textarea cols="50" rows="10" id="text"></textarea>

  <br />

  <input type="button" value="提交" onclick="show();"/>

  </form>

  </body> </html>

  test.htm里面firefox下访问iframe 必须用name,不能用id,所以要改为name="iframe_test" 。

 

补充:如果碰到Error: Permission denied to access property "alertMsg"问题我们要解决的必须就是放在服务器上即可,如我本地打开的是这个地址

file:///C:/Documents%20and%20Settings/Administrator/桌面/8-9/index.html

调用页面的php程序用的是

http://192.168.1.118:9/pin89/a.php

那么怎么修改 <script>window.parent.alertMsg(1);</script> 都是没有用的


解决办法就是

file:///C:/Documents%20and%20Settings/Administrator/桌面/8-9/index.html

改成

http://192.168.1.118:9/pin89/index.html

然后

http://192.168.1.118:9/pin89/a.php输出

<script>window.parent.alertMsg(1);</script>

问题即可解决

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有14人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板