Выполнение Javascript в iFrame из родительского

Просто голова вверх, я полу нуб в JavaScript.

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

Надеюсь, это имело какой-то смысл. Если вы, ребята, хотели бы увидеть, что у меня есть до сих пор, просто дайте мне знать, но я не думаю, что это сильно поможет, так как это вообще не работает.


person Robert Syvarth    schedule 04.10.2009    source источник
comment
Что, если вы просто снова загрузите javascript в iframe? Или исходный javascript сложнее?   -  person Jonno_FTW    schedule 04.10.2009
comment
и снова тот же вопрос: stackoverflow.com/search?q=javascript+iframe+parent   -  person Peter    schedule 05.10.2009


Ответы (3)


Насколько я знаю, вы не можете выполнять JavaScript из другой домен в другом фрейме из-за ограничений безопасности в большинстве браузеров (определенно Mozilla ).

До меня дошли слухи, что это можно обойти с помощью Yahoo! Pipes, но должен признаться, что я никогда не исследовал это, поэтому не знаю, так ли это.

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

person DVK    schedule 04.10.2009
comment
Я могу выполнить скрипт, введя его в адресную строку во время просмотра страницы. Могу ли я сделать что-то подобное в iframe? Спасибо за трубку, буду разбираться. - person Robert Syvarth; 04.10.2009
comment
Нет, потому что, когда вы печатаете в адресной строке, ваши разрешения безопасности являются локальными, тогда как JS, выполняющийся из фрейма, имеет разрешения, связанные с доменом, из которого возникла веб-страница. Одна вещь, которую вы могли бы ОБЯЗАТЕЛЬНО сделать, это прочитать все содержимое IFRAME, изменить местоположение IFRAME на URL-адрес в вашем собственном домене и записать содержимое HTML + JS обратно в этот IFRAME. Это будет работать только в том случае, если JS встроен и на странице нет URL-адресов относительного домена. - person DVK; 04.10.2009
comment
Я прошел через это раньше, но страница содержит много PHP, который также необходим, поэтому это невозможно. Я думаю, что я просто собираюсь заставить iframe прокручиваться до того места, где им нужно щелкнуть, и все должно работать нормально. Большое спасибо за вашу помощь, я бы, наверное, до сих пор пытался сделать что-то, что сейчас невозможно, если бы не вы. - person Robert Syvarth; 04.10.2009

Другой домен? Вы не можете.

person Quentin    schedule 04.10.2009

https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript описывает один из способов настройки домена. страницы с ограничениями.

Есть одно исключение из правила о том же происхождении. Сценарий может установить в качестве значения document.domain суффикс текущего домена. Если это так, более короткий домен используется для последующих проверок происхождения. Например, предположим, что в документе есть сценарий по адресу http://store.company.com/dir/other.html выполняет следующую инструкцию:

Существуют и другие способы связи между фреймами, которые не размывают границы домена, такие как -domains" rel="nofollow noreferrer">http://ajaxian.com/archives/crossframe-a-safe-communication-mechanism-across-documents-and-across-domains .

person Mike Samuel    schedule 07.10.2009