0

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

我正在尝试:

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

有一个 alert('...'); 在函数中,但是当我调用它时,我什么也没看到,显然该函数没有执行。

¿如何调用该函数?感谢您的帮助和建议。

4

2 回答 2

1

尝试使用FireBug(对于 firefox,或者对于其他浏览器使用FireBug Lite)来查看每个框架所具有的实际 HTML 和脚本。
一旦您确定在 ASP.net 中正确创建了代码,请继续使用 FireBug 使用断点查看您的脚本代码哪里出错。
如果您想要一个更快的想法,请尝试在调用函数之前在您放置的代码中使用一些测试,试试这个:

alert(parent.frames.length);
alert(parent.frames[0].Function);
parent.frames[0].Function('parameter');
于 2009-10-29T11:03:13.613 回答
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>
        :

框架 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 兼容模式下测试

于 2010-05-04T15:08:17.520 回答