JavaScript: закрытие окна из iframe - PullRequest
0 голосов
/ 13 ноября 2008

У меня есть страница P1, загружающаяся с сайта S1, которая содержит iframe. Этот iframe загружает страницу P2 с другого сайта S2. В какой-то момент P2 захочет закрыть окно браузера, которое содержит P1, загруженный из S1. Конечно, поскольку P2 загружается с другого сайта, он не может просто выполнить parent.close ().

У меня есть полный контроль над P1 и P2, поэтому я могу добавлять код JavaScript к P1 и P2 по мере необходимости. Предложения о том, как решить эту проблему?

Ответы [ 4 ]

1 голос
/ 13 ноября 2008

Боюсь, это невозможно. JavaScript из iframe, который загружается на другой сайт, а не на тот, на котором он отображается, строго запрещен из-за проблем безопасности.

Однако, если iframe указывает на один и тот же сайт, вы можете попасть на него следующим образом:

<iframe name = "frame1" src = "http://yoursite">
</iframe>

<script type = "text/javascript">
    alert(window.frames["frame1"].document);
</script>
0 голосов
/ 19 июня 2010

Вы можете использовать Flash для этого. Отправьте пользователя на новую страницу верхнего уровня, которой вы управляете с помощью URLRequest с целью _top, и пусть эта страница содержит javascript, который выполняет window.close ().

0 голосов
/ 13 ноября 2008

Похоже, этот парень получил междоменный JavaScript, работающий между фреймами.

0 голосов
/ 13 ноября 2008

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

set document.domain = "domain.com"; // на обеих страницах им разрешено изменять друг друга.

Может быть, просто установить их в поддельный домен, еще не пробовал, или просто ".com" или что-то еще.

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