Вырваться из рамочной страницы перед загрузкой - PullRequest
1 голос
/ 13 октября 2009

У меня есть страница aspx, которая находится внутри фрейма. Я хочу перенаправить на новую страницу, но прежде чем эта страница загрузится, вырвитесь из фрейма. Я использовал этот код JS

window.onload = TimeOutRedirect;
function TimeOutRedirect()
{
    try
    {
    if (self.parent.frames.length != 0)
    self.parent.location=document.location;
    }
    catch (Exception) {}
}

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

Я пытался использовать другую страницу в качестве посредника, но не могу перенаправить после загрузки страницы.

Ответы [ 2 ]

4 голосов
/ 13 октября 2009

См. Сообщение Джеффа в http://www.codinghorror.com/blog/archives/001277.html

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

Цитировать:

Что действительно страшно, так это то, что, насколько я могу судить, решения не существует. Из-за междоменных ограничений безопасности JavaScript для созданного сайта практически невозможно блокировать или вмешиваться в злой JavaScript родительской страницы, который намеренно и агрессивно блокирует удаление фреймов.

Если злой сайт решит, что собирается создать ваш сайт, вас подставят. Период. Разрушение фрейма - не что иное, как ложное чувство безопасности; это не работает

0 голосов
/ 21 января 2015

На http://www.thesitewizard.com/archive/framebreak.shtml Я нашел решение, которое работает для меня:

function breakOutOfFrames() {
  if (top.location != location) { 
    top.location.href = document.location.href;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...