Pergunta

Eu tenho uma janela moldada (atualmente iframe mas pode possivelmente ser quadro) - Eu não tenho controle sobre isso.

Eu gostaria de detectar se o meu conteúdo está dentro de um iframe (ou frame).

Eu queria comparar a localização do documento atual com o objeto superior contém, mas parece que é o mesmo objeto (top === janela).
Após uma extensa googling eu tenho a este IEMobile entrada de blog e em um dos comentários há esta resposta:

iemoblog disse:

Não, você não pode acessar qualquer parte do DOM do pai de script em um iframe no IE Mobile.
20 de dezembro de 2007 12:12

Eu não consigo encontrar qualquer documentação sobre isso - alguém pode ajudar a confirmar isso ou ainda melhor - sugerir uma maneira de detectar se a página é "enquadrado"?

Foi útil?

Solução 2

Como eu não chegar a algum lugar depois de encontrar o comentário deixado no IE mobile blogue (por Charles Morris - gerente de programa da equipe do IE mobile, em seu próprio post), sou forçado a adicionar esta resposta e estado é:

Como concebido (ou um bug pelo menos)

prc disse :

em relação ao apoio iframe: eu puder criar um iframe, mas sou incapaz de "Fora look" do quadro. "Top" e "Pai" ambos parecem referir-se apenas aos o próprio iframe e não o nível superior antepassado ou ancestral imediato como a documentação sugere que deveria. Existe uma maneira para se referir a javascript variáveis ??no documento encerrando de dentro de um iframe?

19 dezembro de 2007 21:29

iemoblog disse :

Não, você não pode acessar qualquer parte do DOM do pai de script em um iframe no IE Mobile.

20 de dezembro de 2007 00:12 PM

Outras dicas

O principal problema é que, se o quadro é de um domínio diferente, em seguida, o recipiente, em seguida, o seu JavaScript está no modo seguro e não pode acessar o outro frame / container.

O que você pode fazer é tentar comparar window para window.top e os resultados possíveis são: 1. A são os mesmos -> você é a janela no topo da página 2. Eles não são os mesmos -> você não é a janela superior na página, há alguma página recipiente, no mesmo domínio como você, que mantém a sua janela como um frame ou iframe. 3. Uma exceção de segurança é lançada -.> Você não é a janela superior na página, mas a janela de topo é de outro domínio e você não pode acessá-lo

talvez algo como isto:

try {
  if (window == window.top)
    return "I'm parent";
  else
    return "I'm a child of " + window.top.location;
} catch (e) {
  return "I'm a child of something from another domain";
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top