Arquivo: /// para http: // comunicação via iframe
Pergunta
Talvez alguns de vocês pudessem ter encontrado o mesmo problema que eu. Imagine que você tem um arquivo em sua máquina: Arquivo: /// c: test.html
E você tem um iframe dentro deste arquivo. Você precisa indicar se o conteúdo do iframe é carregado ou não.
Bacicamente, o que temos aqui: 1. Localização, Href ou qualquer outra propriedade é inacessível do arquivo: /// para http: ///, ou para trás. 2. Você não pode disparar o evento da janela do navegador no iframe, ou em direção oposta, infelizmente.
Esse problema tem uma solução? PS: Isso não é um hack. É um problema real. Fazendo alguma interação da máquina local com a integração do site.
UPD: Eu meio que descubro por que é proibido. Qualquer interação com arquivos locais deve ser proibida da página da web. É meio legal, eu concordo. Mas uma # hashtag não é algo que não pode prejudicar ninguém? :(
Solução
Você pode achar algumas dessas técnicas úteis: http://softwareas.com/cross-domain-communication-with-iframes
Editar: Por comentários abaixo, essas técnicas não parecem funcionar ao acessar file:///c:\<path>\test.html
, enquanto que fazem ao acessar http://localhost/test.html
.
Eu acho que é porque o file
O protocolo é ainda mais restrito pelo navegador do que o http
protocolo. o Página msdn no protocolo de arquivo estados:
O Internet Explorer 6 Service Pack 1 (SP1) não permite mais navegar em uma máquina local da zona da Internet. Por exemplo, se um site da Internet contiver um link para um arquivo local, o Internet Explorer 6 SP1 exibe uma página em branco quando um usuário clica no link. As versões anteriores do Windows Internet Explorer seguiram o link para o arquivo local.
Qualquer que seja a técnica que você estava usando para obter alguma comunicação entre domínios, provavelmente foi bloqueada pelo navegador porque você estava usando o file
protocolo.