Когда кто-то нажимает на ссылку в iframe, переходите по всему окну - PullRequest
5 голосов
/ 12 февраля 2012

Это, кажется, противоположность обычного вопроса, который подразумевает, что, возможно, я упускаю что-то очевидное.

У меня есть небольшое приложение, которое отображает какую-то другую страницу (из другого домена) внутри iframe с моим заголовком сверху. Все идет нормально. Но когда кто-то щелкает ссылку на этой внутренней странице, он просто перемещается по фрейму - я хочу, чтобы он перемещался по странице вся (включая, в частности, обновление URL-адреса в строке URL).

Это, по сути, противоположность кликджекингу. Я просто хочу, чтобы навигация работала так, как если бы это был не фрейм. Есть ли простой способ?

Ответы [ 3 ]

7 голосов
/ 30 января 2015

Содержимое в iframe может изменить цель ссылки: используйте _parent или _top.

<a href='#aboutus' target='_parent'>About Us</a>
3 голосов
/ 12 февраля 2012

Если содержимое <iframe> находится в другом домене, вы не можете сделать это по соображениям безопасности.
Если у вас есть доступ к другому домену и HTML-код, вы можете сделать что-то подобное по ссылке:

href="javascript:parent.window.location.href='http:/google.com'
0 голосов
/ 12 февраля 2012

Это нарушает политику происхождения того же домена, если вы не контролируете сайт как внутри, так и за пределами iframe.

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

Если ваш сайт находится внутри фрейма, это возможно, передавая состояние через сервер, или используя новый (ish) HTML5 Web Messaging стандарт, или манипулируя parent.window изнутри фрейма. .

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