Ограничения веб-страницы при упаковке внутри IFrame?

Я разрабатываю веб-страницу, которую наши клиенты хотят вставлять на свои веб-сайты, завернув мою страницу в iframe (перекрестный домен). Я не должен взаимодействовать с родителем или знать что-либо о том, что находится за пределами iframe.

Я использую HTML, CSS, Javascript и Webservices.

Вопрос: Как мне ограничить внутри iframe по сравнению с тем, была ли моя страница запущена за пределами iframe?

Ответ 1

Ты не. Любой JS, связанный внутри iframe из вашего домена, будет действовать в контексте iframe. Помимо того, что он переполнен в необычный контейнер, он должен работать так же, как если бы он был загружен независимо.

Если ваши потребности должны измениться, однако, есть способы отправить сигналы между родительским фреймом и iframe, если обе страницы имеют JS, написанные для сотрудничества. Там методы, использующие # в URL-адресах, которые могут быть прочитаны родителем и не заставляют перезагружать страницу, и я считаю, что они совместно используют событие window.resize, которое может быть запущено вручную без фактического изменения размера окна.

UPDATE: Есть гораздо лучшие способы взаимодействия между междоменными iframe сейчас, чем раньше. Естественно, вам все равно потребуется сотрудничество JS на обоих концах, но вы можете использовать window.postMessage, а не запускать сообщения через window.resize и данные после символа хэша в URL-адресе. Это был классный трюк.

Ответ 2

При создании ссылок вы должны иметь в виду, возможно, использовать target -трибут a -tag, если вы хотите создать ссылку для родительского окна. В противном случае новая страница будет загружена в iframe.