ASP.NET 获取不同frame中的控件

Posted AnneHan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET 获取不同frame中的控件相关的知识,希望对你有一定的参考价值。

       最近在做网站时遇到一个问题,需要获取不同frame中的控件,请教了一些同事,他们都说是无法取到的

在网上查找了很多资料,找到了解决方法,现在整理一下当初的解决思路:

1、我需要在mainFrame中控制leftFrame中一个DIV控件的显示,如图示:

2、直接在mainFrame中通过document.getElementById(\'div1\')去获取,结果取不到;

3、既然直接取不到,那我可不可以先取得leftFrame中所有的控件呢,尝试了一下,是可以的;

 1 var iObj=parent.document.getElementById(\'leftFrame\').contentWindow; 

4、都已经取到所有控件了,那我取一个div,不是就很好取了,如下;

 1 iObj.document.getElementById(\'divTierNotes\').style.display=\'none\'; 

5、这样问题就解决了。

 

备注:

用iFrame嵌套页面时,如果父页面要获取子页面里面的内 容,可以使用contentWindow和contentDocument

contentWindow和contentDocument的区别:

>contentWindow:这是个只读属性,返回指定的iFrame的 window对象,各个主流浏览器都支持。

>contentDocument:Firefox支持,IE8以上版本支持,可 取得iFrame的document对象,需要如此访问 document.frames[\'leftFrame\'].doucment。

 

完整代码:

 1 JS文件:
 2 function chkTierNoteDis(strDis)
 3 {
 4     //兼容所有浏览器
 5     var iObj=parent.document.getElementById(\'leftFrame\').contentWindow; 
 6     iObj.document.getElementById(\'div1\').style.display=strDis;
 7 }
 8 
 9 后台:
10 string strDis = "none";
11 ClientScript.RegisterStartupScript(this.GetType(), "key", "<script>chkTierNoteDis(\'" + strDis + "\');</script>");

 

以上是关于ASP.NET 获取不同frame中的控件的主要内容,如果未能解决你的问题,请参考以下文章

jquery 如何获取asp.net用户控件的id

ASP.NET WebForm中JavaScript修改了页面上Label的值,如何在后台代码中获取

ASP.net MVC 代码片段问题中的 Jqgrid 实现

如何从 ASP.NET 网站(不是 Web 应用程序)中的用户控件获取父页面

asp.net怎么获取页面动态加载进来的用户自定义控件里面的值。。

ASP.NET中控件dropdownlist下拉菜单选择不同项显示不同的图片