从另一帧访问一帧中的表单值

时间:2014-01-12 06:03:44

标签: html forms vbscript frameset

我创建了两个具有两种不同形式的框架,如下面的链接所示:

http://demo.4page.info/framedemo/main.html(请在IE中查看)

现在,当我点击Get Text按钮时,预定义的值应显示在其上方的文本框中,然后当我点击Copy Here按钮时textbox1的相同值应该显示在它上面的文本框中。

所以我的问题是如何通过单击“在此处复制”按钮以第二帧形式访问该值?

以下是我的代码:

<!--main.html-->
<html>
<head>
<frameset cols="50%, 50%">  
    <frame name="f1" src="left.html" />
    <frame name="f2" src="right.html"  />
</frameset>
</head>
</html>

这成功地将页面分成两个框架。

<!--left.html-->
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/vbscript">
  dim msg
  msg="Hello"
  function func()
    document.form1.text1.value=msg
  end function
</script>
</head>
<body>
  <form name="form1">
  <table align="center" cellspacing="5">
    <tr><td><input type="text" name="text1" /></td></tr>
    <tr><td><input type="button" value="Get Text" onClick="func()" /></td></tr>
    <tr><td><input type="reset" name="reset" value="Reset" /></td></tr>
  </table>
</form>
</body>
</html>

left.html正常工作,并在点击按钮时访问值。

<!--right.html-->
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/vbscript">

</script>
</head>
<body>
<form name="form2">
  <table align="center" cellspacing="5">
    <tr><td><input type="text" name="text2" /></td></tr>
    <tr><td><input type="button" value="Copy Here!" onClick="??????" /></td></tr>
    <tr><td><input type="reset" name="reset" value="Reset" /></td></tr>
  </table>
</form>
</body>
</html>

我需要在right.html中添加什么内容?

1 个答案:

答案 0 :(得分:0)

您可以通过frames对象的parent属性访问其他框架的内容,因此这样的内容应该有效:

<script type="text/vbscript">
Sub CopyHere
  document.form2.text2.value = parent.frames("f1").document.form1.text1.value
End Sub
</script>
...
<form name="form2">
  <input type="text" name="text2" /></td></tr>
  <input type="button" value="Copy Here!" onClick="CopyHere()" />
</form>

请注意,您可能需要调整浏览器的安全设置才能使代码生效。

更一般地说,我建议使用id属性而不是name属性,因为后者已被弃用。