用js遍历当前窗体的所有子窗体

用js遍历当前窗体的所有子窗体,第1张

frameset

<script type="text/javascript">

windowonload = function() {

var frms = windowframes;

for(var i = 0; i < frmslength; i++) {

// Window, Window, Window

consolelog(frms[i]);

}

};

</script><frameset cols="20%,400,">

<frame src="ahtm">

<frame src="bhtm">

<frame src="chtm">

</frameset>

iframe

<script type="text/javascript">

windowonload = function() {

var iframes = documentgetElementsByTagName("iframe");

for(var i = 0; i < iframeslength; i++) {

// Window, Window, Window

consolelog(iframes[i]contentWindow);

}

};

</script><iframe src="ahtml"></iframe>

<iframe src="bhtml"></iframe>

<iframe src="chtml"></iframe>

方法一~~~~~~~~~~~~~~~~~~~~~~

窗口

<input name="" type="button" onclick="newpage()"/>

<script>

var a = "12345";

function newpage(){

windowopen("子窗口html" + "" + a);

}

</script>

子窗口html

<script>

var addstr= documentURL;

var num=addstrindexOf("")

addstr=addstrsubstr(num+1);

alert(addstr);

</script>

方法二:~~~~~~~~~~~~~~~~~~~~~~~

主窗口:

<input id="hid" type="hidden" value="" />

<input name="" type="button" onclick="newpage()"/>

<script>

var a = "12345";

function newpage(){

documentgetElementById("hid")value = a;

windowopen("2html");

}

</script>

子窗口:

<script>

var prtW = windowopener;

var prtA;

if(prtW!=null){

prtA = prtWdocumentgetElementById("hid")value;

alert(prtA);

}

</script>

1、父页面

代码如下:

<input type="text" id="name" value="zhangsan"/>

<a href="ahtml" target="_blank">预览</a>

2、子页面,也就是ahtml获取父页面中文本框的value

代码如下:

$(function(){

consoleinfo(windowopenerdocumentgetElementById("name")value);

});

这样控制台中出来的则是父页面文本框的值

请采用网页对话框的方式  showModalDialog

showModalDialog是jswindow对象的一个方法,和windowopen一样都是打开一个新的页面。

区别是:showModalDialog打开子窗口后,父窗口就不能获取焦点了(也就是无法 *** 作了)。

可以在子窗口中通过设置windowreturnValue的值,让父窗口可以获取这个returnvalue

2一个例子

1)主窗口mainhtml,

2)在主窗口中通过showModalDialog的方式打开子窗口subhtml

3)在子窗口中设置returnValue返回给主窗口使用

mainhtml

复制代码代码如下:

<HTML>

<HEAD>

<METANAME="GENERATOR"Content="oscar999">

</HEAD>

<script>

functionshowmodal()

{

varret=windowshowModalDialog("subhtmltemp="+Mathrandom());

alert("subreturnvalueis"+ret);

}

</script>

<BODY>

<INPUTid=button1type=buttonvalue="opensub"name=button1onclick="showmodal();">

</BODY>

</HTML>

subhtml

<HTML>

<HEAD>

<METANAME="GENERATOR"Content="oscar999">

</HEAD>

<script>

functionreturnMain()

{

windowreturnValue="returnfromsub";

windowclose();

}

</script>

<BODY>

<INPUTid=button1type=buttonvalue="returnandclose"name=button1onclick="returnMain()">

</BODY>

</HTML>

这种目前只有IE可用,其它浏览器都不可用了

方式二:

采用其它js框架,d出对话框的模式

如果按照你的描述

是浏览器不同两个窗口互相访问

浏览器本身就不允许

但是如果是父子窗口 子由父生成

如果以iframe方式实现

可以

前提是两者的域要一样

js不允许跨域 浏览器也不允许

所以获取不到子窗口的window

但是如果父 子页面都把domain统一一个

就可以了

//获取iframe的window对象

var topWin = windowtopdocumentgetElementById("frame")contentWindow;

// 调用子iframe某函数 前提是公开了的

windowxxxfunction();

  我在那个帖子里已经回答了

以上就是关于用js遍历当前窗体的所有子窗体全部的内容,包括:用js遍历当前窗体的所有子窗体、JS 父窗口向子窗口传值问题、js子窗口如何获取父窗口输入框值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9874607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存