Problemas com javascript e iframes

8 respostas
L

Ola… é o seguinte… tenho em minha pagina um iframe e devo atravez dela (da pai) , referenciar elementos dentro do iframe…
com:

document.getElementById("meuIframe").contentWindow;

consigo referenciar o objeto window da pagina dentro do meu iframe…
porem quando coloco:

document.getElementById("meuIframe").contentWindow.document;

o firebug me da o seguinte erro:
Permissão negada a <file://> para ler a propriedade Window.document

o que devo fazer?

8 Respostas

B

Se quiser referenciar elementos dentro de iframes é só fazer o velho

elemento = document.getElementById("id");

Ele acha em qqr lugar que estiver no documento, inclusive dentro de iframes.

L

sim eu sei… mas estou com problemas de permissão pois a pagina referenciada pelo meu iframe não fica no mesmo servidor que a pagina pai… ficam em hosts distintos… e o javascript não deixa eu referenciar paginas de host distintos dentro do meu iframe…
alguem sabe como contorno esta situação?

B

luistiagos:
sim eu sei… mas estou com problemas de permissão pois a pagina referenciada pelo meu iframe não fica no mesmo servidor que a pagina pai… ficam em hosts distintos… e o javascript não deixa eu referenciar paginas de host distintos dentro do meu iframe…
alguem sabe como contorno esta situação?

Você não contorna. Para evitar ataques de Cross site scripting (XSS), as referências devem ser feitas somente à páginas feitas com mesmo protocolo(http/https), mesmos domínio(e subdomínios) do servidor, e na mesma porta.

Uma opção é carregar o conteúdo daquela página via as técnicas do AJAX, e tentar se virar por aí. Não estou certo se funciona tb, pelos mesmo motivos.

L

tentei isto tbm e não obtive sucesso…

L

uma coisa eu sei… o firebug consegue fazer isto… com o firebug vc acessa qualquer elemento de qualquer host…
se ele consegue então é possivel… mas a questão é como que ele consegue?

alguem tem alguma ideia?

D

Desculpa ressucitar(nao sei como escreve) o topico, mas eu uso uma tecnica pra conseguir isso. Nao tenho certeza de o porque o firebug consegue, acredito que nao seja usando puro javascript, acho que ele esta trabalhando mais a nivel de “browser” e dai pega o conteudo pelo firefox e nao pelo javascript. Nao sei se vc me entendeu. Mas a maneira que faco para conseguir o conteudo de outros sites, é usando uma linguagem qualquer no servidor. Pode ser em qualquer linguegm, ate um script CGI, mas eu requisito via ajax esse script no servidor e ele faz download da pagina que eu quero e me retorna ela. Dai a pagina vai acabar vindo do meu servidor. Geralmente faco isso com php…
Se precisar de mais explicacao so dar um toque.
Flws

Y

Oi DaniloM ! boa noite, eu estou com umm problema que se encaixa na descrição : carregar uma url (tela) do vnc em um iframe…entretanto estou tendo aquele erro de “permissao negada”…e não tenho certeza se entendi bem o que vc disse? vc falou que faz a requisição via ajax, eh? Gostaria de uma explicação mais detalhada e/ou um exemplo
Agradeço desde jah a atenção!

D

O que falei é o seguinte:
os browsers em geral nao te permitem acessar o codigo de uma pagina fora do seu servidor. Isso é uma tecnica de seguranca, pois imagina vc fazer um site todo trabalhado e chegar um maluco e colocar teu site na pagina dele e fazer apenas algumas modificacoes! Por isso nao conseguimos fazer requisicoes ajax para servidores externos. No entanto, uma tecnica que uso, é chamar um script em php no servidor e esse script vai fazer o download da pagina que quero e me mandar o texto dessa pagina.
Procura algo sobre a funcao file_get_contents() do php e nao se esqueca da diretiva allow_url_fopen = On no php.ini

Se nao intendeu, da um toque.

Abraço

Criado 11 de dezembro de 2009
Ultima resposta 2 de ago. de 2010
Respostas 8
Participantes 4