使用IFrame时放置JS的位置

时间:2010-07-21 19:07:13

标签: javascript asp.net html

好的,我知道每个人都认为IFrame很糟糕,我知道。但我“需要”使用一个用于罕见的情况。

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

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

我也看到了这个问题,如果使用像这样的库以某种方式引用位于IFrame中的.aspx,你必须以某种方式获取jQuery库。你不想加载jQuery库两次(一次在你的主,一次在你的iframe的.aspx中),这使我更倾向于认为这个选项是我需要去的方式,以便内部.aspx以某种方式引用main .aspx对我在母版页中包含的jQuery库的引用。主.aspx与该母版页绑定。

2)将主.aspx相关JS放在主.aspx中,并将内部.aspx相关JS放在内部.aspx文件中。但是,我再次遇到问题。

这有很多东西需要阅读,但我不知道如何解释这个问题以及在使用IFrame时我想弄清楚人们在做什么的情况。

1 个答案:

答案 0 :(得分:2)

您可以使用iframe从任何top引用主页中的任何内容,如top.getElementById('maindiv');

在主页面中,您可以通过frames数组中的名称或索引访问该框架。

框架和父级必须从同一域中出售才能以这种方式进行交叉通信。