从框架中的asp.net页面调用Javascript函数

时间:2009-10-15 22:24:51

标签: c# asp.net javascript function frameset

我在一个框架集中有2个页面,在第一个页面我有一个Javascript函数,第二个是带有按钮的asp.net表单,事情是我需要在用户的第一页调用Javascript函数点击按钮:

我正在尝试:

ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script language=JavaScript>parent.frames[0].Function('parameter')</script>");

有警报('...');在函数中但是当我调用它时我什么都没看到,显然函数没有被执行。

¿我该怎么称呼这个功能?感谢您的帮助和帮助建议。

2 个答案:

答案 0 :(得分:1)

尝试使用FireBug(对于Firefox,或使用FireBug Lite用于其他浏览器)查看每个框架的实际HTML和脚本。
一旦结束在ASP.net中正确创建代码,继续使用FireBug查看使用断点的脚本代码出错的位置。
如果你想要一个更快的想法,尝试在调用函数之前在你输入的代码中使用一些测试,试试这个:

alert(parent.frames.length);
alert(parent.frames[0].Function);
parent.frames[0].Function('parameter');

答案 1 :(得分:0)

非常感谢,Dror,让我度过了一段耗时的麻烦!

我可以补充说,除了索引之外,看起来人们可以使用框架的名称(原谅我,伙计,如果这很明显):

父母htm:
        :
    <frameset rows="120,*">
        <frame name="OverviewFrame" id="OverviewFrame" src="eoverview.htm">
        <frame name="LegendFrame" id="LegendFrame" src="">
    </frameset>
    <frameset cols="50%,50%">
        <frame name="ControlsFrame" id="ControlsFrame" src="zoomcontrols.htm">
        <frame name="InsetControlsFrame" id="InsetControlsFrame" src="insetcontrols.htm">
    </frameset>
        :

frame htm(insetcontrols.htm):
    parent.frames['OverviewFrame'].enableSync(false);

(其中eoverview.htm包含函数enableSync(bool)

在FF3.6.3,Chrome 4.1.249.1064,Safari 4.0.5,Opera 9.80,IE 8,IE 8兼容模式上测试