2011-05-28 4 views
11

Хорошо, я использую iframe на странице. Содержимое в iframe я не контролирую и использую программу Adobe Flash.Нужно вырваться из iframe после отправки содержимого в iframe

Но как только форма затухает в iframe (опять-таки я не контролирую), он загружает СТРАНИЦУ, я ПРОВЕРЯЮ КОНТРОЛЬ, но имеет эту страницу в IFRAME вместо того, чтобы вырваться из iframe на этой странице. Как я могу выйти из iframe только на этой странице?

Я предполагаю, что некоторые Javascript необходимы, но этот код не хорошо:

if (top.location != self.location) { 
top.location = self.location; 
} 

Используя этот код загружает на главной странице индекса для сайта. Мне нужно просто загрузить страницу после отправки формы и выйти из нее. Опять же, у меня есть доступ к странице, которая загружается в iframe после того, как форма будет отправлена ​​в iframe.

Пожалуйста, помогите мне.

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

Спасибо :)

+0

Вы положить код на внешней странице или на странице Iframe в? Кроме того, вы можете столкнуться с проблемой безопасности, вызванной внешними и внутренними страницами, имеющими разные домены? – ErikE

ответ

11

Я считаю, что вы хотите, это

if(this != top){ 
    top.location.href = this.location.href; 
} 

Чтобы вырваться из

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

if(this != top){ 
    top.document.location.href = this.document.location.href; 
} 
+0

Где я могу поместить этот код? В голове? Как он знает, что это такое? Или что 'top' находится внутри Javascript? Знает ли он это автоматически или это нужно определить? – SoLoGHoST

+0

это НЕ работает, оно по-прежнему приводит меня к индексу сайтов вместо URL-адреса, к которому идет iframe. – SoLoGHoST

+0

Каков URL страницы? и есть ли только один кадр? Я спрашиваю, потому что я использовал этот код десятки раз, и я знаю, что он работает. Да, вы можете поместить его в голову или в тело ... top - это глобальная ссылка на самое верхнее окно, и это автоматически ссылается на «это» окно. PS Возможно, я немного сработал, может потребоваться «документ» под полным именем. – scunliffe

1

То, что сработало для меня было:

(function() { 
    'use strict'; 
    console.log('window.top.location', window.top.location); 
    console.log('window.location', window.location); 

    if (window.location !== window.top.location) { 
     window.top.location = window.location; 
    } 
})(); 

Вдохновленный https://css-tricks.com/snippets/javascript/break-out-of-iframe/

Смежные вопросы