http://hi.baidu.com/yashua839/blog/item/131fdb2fe547ef221f3089af.html一、Iframe 篇

//&&&&&&&&&&&&&&&&&&&&公共方法开始&&&&&&&&&&&&&&&

//父对象得到子窗口的值

//ObjectID是窗口标识,ContentID是元素ID

function GetValue(ObjectID,ContentID)

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE)

{//如果是IE

alert(document.frames(ObjectID).document.getElementById(ContentID).innerHTML);

}

else

{//如果是FF

alert(document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML);

//FF下不支持innerText; 下面是解决方法

//if(document.all){

//  alert(document.getElementById('div1').innerText);

//} else{

//  alert(document.getElementById('div1').textContent);

//}

}

}

//父对象向子窗口赋值

//ObjectID是窗口标识,ContentID是元素ID

function SetValue(ObjectID,ContentID)

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE)

{//如果是IE

document.frames(ObjectID).document.getElementById(ContentID).innerHTML="我是IE下通过父窗口赋值过来的";

}

else

{//如果是FF

document.getElementById(ObjectID).contentDocument.getElementById(ContentID).innerHTML="我是FF下通过父窗口赋值过来的";

}

}

//&&&&&&&&&&&&&&&&&&&&公共方法结束&&&&&&&&&&&&&&&

 1.父窗口对子窗口操作

刷新:

document.getElementById("IframeID").src=document.getElementById("IframeID").src+"?_="+Math.random();

上面这种方法有时需要对“src”属性处理一下。

取值:

//父窗口取子窗口的值

GetValue("Iframe1","IframeDiv");

赋值:

//父窗口设置窗口元素的值;

SetValue("Iframe1","IframeDiv");

   2.子窗口操作父窗口

 

              刷新:

(1)、window.parent.location.href=window.parent.location.href;

(2)、window.parent.location.reload();

(3)、大家可以补充

取值:

alert(window.parent.document.getElementById("IframeDiv").innerHTML);

赋值:

window.parent.document.getElementById("IframeDiv").innerHTML="我是从子窗口IFRAME传过来的值";

关闭:

window.parent.opener=null;//如果不加这句,会提示关闭询问窗口;

window.parent.close();
 

二、window.open 

1.父窗口对子窗口操作

打开:

var win=null;

win=window.open("Open.html","win","width=200,height=200");

最大化:

//窗口最大化

function SonMaximize()

{

if(win&&win.open&&!win.closed)

{

win.moveTo(-4,-4);

win.resizeTo(screen.availWidth+8,screen.availHeight+8);

}else{

alert('还没有打开窗口或已经关闭');

}

}

最小化:

//窗口最小化

function SonMinimize()

{

if(win&&win.open&&!win.closed)

{

win.resizeTo(0,0);

win.moveTo(0,window.screen.width);

}else{

alert('还没有打开窗口或已经关闭');

}

}

关闭:

//关闭窗口

function CloseSon()

{

if(win&&win.open&&!win.closed)

{

win.opener=null;

win.close()

}else{

alert('还没有打开窗口或已关闭') ;

}

}

刷新:

//刷新

function RefreshSon()

{

if(win&&win.open&&!win.closed)

{

win.location.reload();

win.focus();

}else{

alert('窗口还没有打开或已关闭');

}

}

查看窗口大小:

function ViewSonSize()

{

if(win&&win.open&&!win.closed)

{

alert(win.document.body.clientWidth+'*'+win.document.body.clientHeight);

win.focus();

}else

{

alert(' 还没有打开窗口或者已关闭');

}

}

取值:

alert(window.document.getElementById("OpenDiv").innerHTML);

赋值:

win.document.getElementById("OpenDiv").innerHTML="我是从父窗口中传过来的值";

2.子窗口操作窗口

 

刷新:

window.opener.location.reload();

//下面这种方法也可以

//window.parent.location.href=window.parent.location.href;

 

 

 

 

 

关闭本窗口:

//关闭本窗口

function CloseWindow()

{     //window.opener.opener=null;

window.close();

}

关闭父窗口:

//关闭父窗口

function CloseParent()

{     //火狐下不起作用,如果要想起作用。用下面的方法

//开firefox,在地址栏输入about:config

//找到dom.allow_scripts_to_close_windows这项并改为true

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE){//如果是IE

window.opener.opener=null;

window.opener.close();

window.close();

}else{

alert("火狐不能直接关闭;需要以下设置1.开firefox,在地址栏输入about:config;2.找到dom.allow_scripts_to_close_windows这项并改为true");

}

}

取值:

alert(window.opener.document.getElementById("OpenDiv").innerHTML);

赋值:

window.opener.document.getElementById("OpenDiv").innerHTML="我是从子窗口Open传过来的值";

三、模态窗口篇

1.父窗口操作子窗口

父窗口JS代码:

var parValue="现在显示了父窗口中的变量值";

var hao="郝建卫";

function ShowDailog(PageHref,Title,Height,Width)

{

//--------------left位置

//screen.availHeight声明了显示浏览器的屏幕的可用宽度

var dleft =(screen.availHeight-Height)/2;

//--------------top位置

var dtop =(screen.availWidth-Width)/2;

//---------------

Var sRet = window.showModalDialog(PageHref,window,Title,"scrollbars=yes;resizable=no;help=no;status=no;center=yes;dialogTop=25;dialogLeft="+ dleft +";dialogTop="+ dtop +";dialogHeight="+Height+"px;dialogWidth="+Width+"px;");

//--------return

if (sRet =="refresh")//这种是利用返回值来刷新父页面

{

window.Test="true";

window.location.reload();

alert(window.Test);

}

}

function test()

{

alert("模态窗口成功调用父窗口的方法");

}

2.模态窗口操作父窗口

var parentWin=window.dialogArguments;

刷新:

parentWin.location.reload();

取值:

alert(parentWin.document.getElementById("ShowModalDialogDiv").innerHTML)   //获取父窗口中的对象

alert("我是从父窗口中得到的变量>>>"+parentWin.parValue);       //获取父窗口中的变量

调用父窗口JS方法:

parentWin.test();    //调用父窗口中的方法

赋值:

parentWin.document.getElementById("ShowModalDialogDiv").innerHTML="我是从子窗口ShowModalDialog传过来的值";

 

关闭本窗口:

//关闭本窗口

function CloseWindow()

{

window.parent.close();

}

关闭父窗口:

//关闭父窗口

function CloseModal()

{

var IsIE = (navigator.appName == 'Microsoft Internet Explorer')

if(IsIE){//如果是IE

window.parent.parent.close();

//parentWin.opener=null;如果把上面的换成这行,不能关闭父窗口,

parentWin.close();

//window.parent.parent.parent.parent.close();这个只能关闭模态窗口本身目前只在IE6下测试

}else{

alert("火狐不能直接关闭;需要以下设置1.开firefox,在地址栏输入about:config;2.找到dom.allow_scripts_to_close_windows这项并改为true");

}

}

总结js(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作的更多相关文章

  1. 总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 //&&&&&&&&&&&&&&&&&&a ...

  2. HTML中IFrame父窗口与子窗口相互操作

    一.Iframe篇 //&&&&&&&&&&&&&&&&&&am ...

  3. JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 公共部分 //父对象得到子窗口的值 //ObjectID是窗口标识,ContentID是元素ID function GetValue(ObjectID,ContentID) { ...

  4. js window.open() 父窗口与子窗口的互相调用(未必有用)

    javascript 父窗口与子窗口的互相调用 <html> <head></head> <body> 主要实现父子关系的页面 window.opene ...

  5. #js window.open() 父窗口与子窗口的互相调用【转】

    未完整版 javascript 父窗口与子窗口的互相调用 a.html 父页面 <HTML> <HEAD> <meta http-equiv="content- ...

  6. Iframe父页面与子页面之间的调用

    原文:Iframe父页面与子页面之间的调用 Iframe父页面与子页面之间的调用 专业词语解释如下:     Iframe:iframe元素是文档中的文档.     window对象: 浏览器会在其打 ...

  7. iframe父窗口和子窗口之间的调用

    1>父窗口获取子窗口 js方法 document.getElementById('if1').contentWindow.document: window.frames["if1&qu ...

  8. js父页面和子页面之间传值

    今天和朋友一块讨论,怎样通过js在父页面和子页面之间传值的问题,总结例如以下: 需求描写叙述:父页面有多个子页面.实如今父页面点击子页面,传值到子页面. 看着非常easy,试了好久.主要纠结在怎样获取 ...

  9. Iframe父页面与子页面之间的相互调用

    iframe元素就是文档中的文档. window对象: 浏览器会在其打开一个HTML文档时创建一个对应的window对象.但是,如果一个文档定义了一个或者多个框架(即:包含一个或者多个frame或者i ...

随机推荐

  1. hihocoder1310 岛屿

    hihocoder1310 岛屿 题意: 中文题意 思路: dfs,面积和数量都很好求,问题在岛屿形状上,感觉让人比较麻烦,用vector保存各个点,只要两个岛之间每个点距离一样就好了,这里的形状的定 ...

  2. mysql sql优化及注意事项

    sql优化分析 通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引.不必要的数据访问和排序)当我们面对具体的sql时,首先查看其执行计划A.看其是否使用索 ...

  3. Create a DAC from a microcontroller's ADC

    Few microcontrollers include a DAC. Although you can easily find an inexpensive DAC to control from ...

  4. Spring JdbcTemplate batchUpdate() 实例

    在某些情况下,可能需要将一批记录插入到数据库中.如果你对每条记录调用一个插件的方法,SQL语句将被重复编译,造成系统缓慢进行. 在上述情况下,你可以使用 JdbcTemplate BATCHUPDAT ...

  5. How Basic Performance Analysis Saved Us Millions-------火焰图

    ENGINEERING How Basic Performance Analysis Saved Us Millions  Michael Malis May 19, 2017 9 min read ...

  6. Step by Step 設定 TFS 2012 Create Team Project 權限 - 避免 TF218017、TF250044

    基本上權限的設定和 以往的 TFS 沒有什麼太大的差別 只是這次的權限設定畫面有略作些調整,我還是一併整理一下 當我們用 TFSSetup 的帳號安裝完 TFS 2012 後 想要在自已的電腦上用自已 ...

  7. win10怎么彻底关闭自动更新

    原文:https://jingyan.baidu.com/article/9faa7231e7b78b473c28cbb6.html 方法/步骤   1 单击左下角开始菜单点击设置图标进入设置界面 2 ...

  8. Redis 3.0版本启动时出现警告的解决办法

    原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...

  9. ecmall用户登录后自动退出解决方法

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  10. C++ Primer 学习笔记_91_用于大型程序的工具 --命名空间

    用于大型程序的工具 --命名空间 引言: 在一个给定作用域中定义的每一个名字在该作用域中必须是唯一的,对庞大.复杂的应用程序而言,这个要求可能难以满足.这样的应用程序的全局作用域中一般有很多名字定义. ...