внедрить JavaScript в iframe для приложения портала - PullRequest
2 голосов
/ 17 декабря 2010

У меня есть фрейм, в котором есть веб-приложение.он ожидает, что на странице, которую он может вызвать, будут определенные функции javascript.Как я могу внедрить эти функции javascript в iframe из моего родительского приложения?

Ответы [ 2 ]

2 голосов
/ 18 декабря 2010

Ваш вопрос немного расплывчат в деталях, например, контролируете ли вы содержимое внутри iframe или нет.Но есть несколько способов получить доступ / применить Javascript между кадрами.

На странице, содержащейся внутри iFrame:

parent.FunctionName();

Это вызовет функцию, которая существует в вашем основномстраница, которая содержит iframe.

Аналогично:

YourIFrameName.FunctionName();

Будет вызывать функцию в вашем iframe из родительского.

Вы также можете упаковать необходимые функции Javascript вфайл .jsИ включите их в заголовок той страницы, где они нужны (iframe и / или главная страница).

Включите это в ваш <head>:

<script type="text/javascript" src="YourJavascriptFile.js"></script>

Однако, если вы это сделаетене контролировать содержимое и работать в той же политике происхождения, у вас есть два варианта:

1) Переосмыслить ваше приложение.

2) Работоспособный беспорядок: Вам нужно будет позвонитьскрипт из iframe, который использует магию типа cURL для извлечения содержимого страницы включенного веб-приложения, внедрения необходимого Javascript, а затем вывода измененного содержимого осмысленным образом.

Если вы решили, что вам нужно идти по маршруту № 2, я могу отредактировать более подробно.

0 голосов
/ 17 декабря 2010

Как уже упоминал Роберт, я думаю, что это нарушает одну и ту же политику происхождения в большинстве (если не во всех) браузерах.

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

...