快捷搜索:  as

快速精通FRAME框架(八)

FRAME间的脚本节制

应用JavaScript,我们既可以从创建窗口的页面造访那个窗口,也可以从这个窗口创建的窗口造访它。另一方面,FRAMESET中的文档(包括FRAMESET本身)老是可以造访和操纵此中每个的JavaScript函数和变量。比如说,第三个FRAME中有函数sayGobble(vol),那么在其他FRAME中就可以应用parent.FRAMEs[2].sayGobble(vol)来引用它。同样,FRAMESET页面中的变量myName可以被任何FRAME以parent.myName="Imelda"的敕令进行设置。

不管在其他FRAME中的内容若何,在静态FRAME或者FRAMESET中的函数和变量始终维持可用。这个特性异常有代价,不仅可以将通用函数保存在此中从而压缩代码,而且,还可以实现页面间转换时的状态维持。

下面的FRAMESET页面只有一个FRAME叫做query.htm,并且定义了一个JavaScript变量myword:

<HTML><HEAD>

<TITLE>Passing data</TITLE>

<SCRIPT LANGUAGE="JavaScript"><!--

myword="";

//--></SCRIPT>

</HEAD>

<FRAMESET rows="*,1" FRAMEBORDER=no>

<FRAME name="active" src="query.htm">

<FRAME name="dummy">

</FRAMESET>

</HTML>

页面query.htm有一个文本输入框以及一个到result.htm的链接,链接的onClick事故将设置FRAMESET页面的myword变量为文本输入框的内容。代码如下:

<HTML><HEAD></HEAD>

<BODY>

<FORM name="myForm">

<INPUT type=text size=12 name="myText">

<P>

<A onClick="parent.myword=myText.value"

href="result.htm">See it in yellow on blue!</A>

</FORM>

</BODY></HTML>

页面result.htm取回并打印出myword的数值,代码是:

<HTML>

<HEAD></HEAD>

<BODY bgcolor=#0000cc vlink=#99ffff>

<FONT size=+3 color=#ffff00>

<SCRIPT language="JavaScript"><!--

document.write(parent.myword);

//--></SCRIPT>

</FONT><P>

<A href="query.htm">Do it again</a>

</BODY></HTML>

这个例子很有实用代价。比如说,你可以设定造访者按必然的序次打开页面,网络用户信息,着末定制出用户特制的显示内容。

谈到状态掩护功能,这个措施不会比应用cookie或CGI更好,由于当FRAMESET重载或者退出时,变量值就损掉了。然则,它不要求办事器端相应,也不存在安然问题,是以照样可以小试一把的。

下一页:用脚本节制浮动FRAME

您可能还会对下面的文章感兴趣: