DOM acesso do pai de script em um iframe no IE Mobile
-
05-07-2019 - |
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"?
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";
}