вызвать функцию JavaScript из-за пределов iframe - PullRequest
7 голосов
/ 28 февраля 2011

У меня есть одно полное открытие html внутри iframe, которое содержит функцию javascript getData (). Теперь я не уверен, как вызвать getData () снаружи этого фрейма. Также возможно ли вызвать его из внешнего файла javascript?

Ответы [ 3 ]

11 голосов
/ 28 февраля 2011

Вы можете получить ссылку на объект окна фрейма из свойства window.frames.См. https://developer.mozilla.org/en/DOM/window.frames

ОБНОВЛЕНИЕ:

Вы можете получить доступ к глобальному контексту именованного фрейма с помощью window[framename].Например:

<iframe src="data.html" name="data"></iframe>

<script>
var myData = window.data.getData();
</script>

Хотя вам необходимо убедиться, что iframe загрузился.

В jQuery вы можете использовать метод содержимого, если вы хотите получить доступ к DOM iframe:

$("iframe").contents()

Все это предполагает, что фрейм, размещенный в том же домене .

ОБНОВЛЕНИЕ [2]:

Вы спросили, если этоможно вызвать функцию getData из внешнего файла js.Ответ - да (если я вас правильно понимаю).Вот пример:

<html>
<head>
    <meta charset="utf-8">
    <title>parent page</title>
</head>
<body>

    <iframe src="data.html" name="data"></iframe>
    <script src="getdata.js"></script>

</body>
</html>

Затем в файле getdata.js у вас есть:

var dataFrame = window.data;

// when the frame has loaded then call getData()
dataFrame.onload = function () {
    var myData = dataFrame.getData();
    // do something with myData..
}

Надеюсь, что это ответ на ваш вопрос:)

0 голосов
/ 04 декабря 2013

В определенных ситуациях может возникнуть необходимость вызова функции javascript внутри iframe из родительского документа, и наоборот, т.е.вызов функции javascript в родительском документе из iframe.

Например; родительский документ имеет iframe с атрибутом id 'iFrameId', а функция 'functionInIframe ()' определенаэтот документ iframe.Следующий код может вызвать эту функцию iframe из самого родительского документа.

document.getElementById('iFrameId').contentWindow.functionInIframe();

И следующий код может вызвать функцию, определенную в родительском документе (functionInParent ()), из самого iframe.

parent.functionInParent();

Таким образом javascript может взаимодействовать между родительским документом и iframe.

Это оригинальный пост .

0 голосов
/ 28 февраля 2011

в этих случаях вы называете свой iframe и основной текст, который использует / запускает фрейм, а затем используете parent.objectname, в JS все является Object, и вы должны иметь возможность вызывать getData ()

для быстрого поиска в Googleпривел меня к этому -> http://www.esqsoft.com/javascript_examples/iframe_talks_to_parent/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...