Управление фреймом со страницы контейнера - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть веб-страница, которая содержит два текстовых поля и кнопку. Я не могу управлять этой страницей, добавляя к ней что-либо или изменяя что-либо на ней.

Я хочу (каким-то образом) написать текст в первом текстовом поле при загрузке страницы, не нажимая кнопку.

Я хочу поместить страницу во фрейм, а затем управлять ею со страницы контейнера

Я знаю, что должен использовать 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», я хочу, чтобы текстовое поле (например, «tbx1») на странице «f.htm» (содержащееся во фрейме «frame1») было заполнено некоторыми текст.

спасибо заранее

1 Ответ

3 голосов
/ 22 сентября 2011

Прежде чем я начну с этого ответа, стоит пояснить, что вы не можете использовать один только JavaScript для управления фреймом, который обслуживает контент из отдельного домена *. Другими словами, если ваша страница a.htm находится на вашем домене (например, http://yourdomain.com/a.htm),, а f.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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...