Eu gostaria de manipular o HTML dentro de um iframe usando jQuery.
Eu pensei que I'seria capaz de fazer isso definindo o contexto da função jQuery para ser o documento do iframe, algo parecido:
$(function(){ //document ready
$('some selector', frames['nameOfMyIframe'].document).doStuff()
});
No entanto, isto não'parece funcionar. Um pouco de inspeção me mostra que as variáveis em frames['nameOfMyIframe']
estão finidas' a menos que eu espere um pouco para que o iframe seja carregado. Entretanto, quando o iframe carrega as variáveis não estão acessíveis (recebo erros do tipo
permission denied').
Alguém sabe de alguma solução para isto?
Eu acho que o que você está fazendo está sujeito à mesma política de origem. Esta deve ser a razão pela qual você está recebendo permissões negadas de erros de tipo.
Você precisa anexar um evento a um manipulador de carregamento do iframe e executar os js lá dentro, para que você tenha certeza de que o iframe terminou de carregar antes de acessá-lo.
$().ready(function () {
$("#iframeID").ready(function () { //The function below executes once the iframe has finished loading
$('some selector', frames['nameOfMyIframe'].document).doStuff();
});
};
O acima mencionado resolverá o problema do "ainda não carregado", mas no que diz respeito às permissões, se você estiver carregando uma página no iframe que é de um domínio diferente, você não será capaz de acessá-la devido a restrições de segurança.