【问题标题】:Control a frame from container page从容器页面控制框架
【发布时间】:2011-11-22 23:15:45
【问题描述】:

我有一个包含两个文本框和一个按钮的网页。我无法通过向其中添加任何内容或更改其中的任何内容来控制此页面。

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

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

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

例如,如果我有文件“a.htm”:

“a.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.htm”加载时,我希望页面“f.htm”中的文本框(例如“tbx1”)(包含在框架“frame1”中)被一些填充文本。

提前致谢

【问题讨论】:

    标签: javascript jquery html iframe


    【解决方案1】:

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

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

    但是,如果它们都在同一个域上,您应该没有问题。在a.htm,要访问 iframe,您可以使用以下 jQuery sn-p:

    $(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>
    

    【讨论】:

    • 我不太明白你在问什么。 “页面中包含的框架”是什么意思?
    • 非常感谢它很有用....但是有什么方法可以从单独的域控制框架!!????
    • 查看this answer - 非常完美
    猜你喜欢
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    相关资源
    最近更新 更多