2010-07-21 77 views
1

好吧,我知道每个人都认为IFrames不好,我知道。但我需要“使用”一个罕见的情况。在使用IFrame时把你的JS放在哪里

所以我有的问题是,当你有一个.aspx页面,其中包含一个IFrame,然后在该IFrame另一个.aspx页面,如果你想要那个IFrame内的.aspx页面能够使用JS,应该你:

1)把所有的JS放在主要.aspx中,并以某种方式引用代码从内部.aspx到主要.aspx调用驻留在主要.aspx中的JS方法?意思是我应该思考这个问题,因为我把所有的JS放在主要的.aspx文件的内部.aspx文件中,然后尝试从内部的.aspx文件中调用并以某种方式引用这些JS方法?因为现在我无法抓住.aspx控件的ClientID,当我在内部.aspx中有JS时,并且.aspx也有asp.net web控件,我试图将JS var设置为它的clientID。正常的东西在这里,但它不工作,因为每次我在JS中测试这个var它只是吐回服务器端的ID,而不是运行时重写的ID,控制中的命名容器吐出。

我也看到这个问题,你必须以某种方式得到jQuery库,如果使用这样的库以某种方式引用您的.aspx位于IFrame。你不会想要加载jQuery库两次(一次在你的主页中,一次在你的Iframe的.aspx中),以便进一步使我倾向于相信这个选项是我需要去的方式,以便内部的.aspx以某种方式引用main .aspx对我包含在我的母版页中的jQuery库的引用。主.aspx与该母版页相关联。

2)将主.aspx相关的JS当然放在主.aspx文件中,并将内部.aspx相关的JS放在内部的.aspx文件中。但是,我又一次遇到了问题。

这是很多阅读,但我不知道该怎么解释这个问题和情况,我想弄清楚使用iframe后什么人在做这件事。

回答

2

您可以在主页面的任何iframe使用top引用任何东西,如top.getElementById('maindiv');

从主页,您可以通过它的名称或索引从frames阵列访问帧。

框架和父母必须从同一个域出售以这种方式交叉通信。