从容器页控制框架

Control a frame from container page

本文关键字:控制 框架      更新时间:2023-09-26

我有一个包含两个文本框和一个按钮的网页。我不能通过添加或更改任何内容来控制这个页面。

我想(以某种方式)在页面加载时在第一个文本框中写入一些文本,而不需要按下按钮。

我想把页面放到一个框架中然后从容器页面控制它

我知道我必须使用jquery但我需要一个示例来解释它或告诉我如何做我想要的

例如,如果我有文件" .htm":

" .htm"的内容:

<iframe id="frame1" src="f.htm" />

,"f.htm"的内容为:

<input type="textbox" id="tbx1" />
<input type="textbox" id="tbx2" />
<input type="submit" id="okbtn" value="ok"/>

例如,当页面"a.h mts"加载时,我希望页面"f.h mts"(包含在框架"frame1"中)中的文本框(例如"tbx1")被一些文本填充。

thanks in advance

在我开始回答这个问题之前,有必要解释一下,不能单独使用JavaScript来操作提供来自单独域*内容的框架。换句话说,如果你的页面,a.htm,是在你的域(例如http://yourdomain.com/a.htm),和f.h htm是在另一个域(例如http://someothersite.com/f.htm),那么JS将不是能够访问iframe内的任何东西。

*有一些技术可以做到这一点,但根据经验,它们带来的麻烦多于好处。

然而,如果它们都在同一个域中,你应该没有问题。在a.htm中,要访问iframe,可以使用以下jQuery代码片段:

$(function() {
  var iframe = $('#frame1').load(function() {
    $(this).contents().find('#tbx1').val('Text in a box!');
  });
});

因此,您的a.htm可能看起来像:

<html>
  <head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
    <script type="text/javascript">
      $(function() {
        var iframe = $('#frame1').load(function() {
          $(this).contents().find('#tbx1').val('Text in a box!');
        });
      });
    </script>
  </head>
  <body>
    <iframe id="frame1" src="f.htm" />
  </body>
</html>