Вызовите метод javascript, определенный в parent из iframe - PullRequest
1 голос
/ 28 сентября 2010

После некоторых исследований (даже в stackoverflow) я все еще не могу понять, как это сделать.parent.method() не поможет, как и некоторые другие решения, которые я пробовал.

Ситуация: У меня есть index.html на стороне клиента (в данном случае это мобильный телефон), в котором есть страница загрузки на сервер iframe.Что мне нужно сделать, так это вызвать метод javascript, определенный в index.html (на стороне клиента) из содержимого iframe (на стороне сервера).

В качестве примера (я неиспользуя android в вопросе, описанном выше), приложения Android имеют addJavascriptInterface, который, когда он определен, позволяет вызывать методы, определенные на стороне клиента, со страниц сервера, просто вызывая window.CustomObject.MethodToCall().

Любая подсказка?

Спасибо!

Ответы [ 3 ]

1 голос
/ 20 декабря 2011

Я понимаю, что опоздал на эту вечеринку всего на год, но реального ответа не было.

Итак, для этого оба файла должны находиться в одном домене.Поскольку у вас есть index.html на телефоне localhost и вы загружаете страницу на свой сайт, он не будет работать (locahost to example.com).Вы также можете загрузить index.html со своего сайта, и это решит эту проблему (example.com to example.com).Тогда вы можете ссылаться на родительский фрейм в нормальном window.top.function.

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

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

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

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

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

parent.functionInParent();

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

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

1 голос
/ 28 сентября 2010
window.top.foo 

для окна верхнего уровня

window.parent.foo

для прямого родителя

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