jQuery cross domain scripting iframe

Estou tentando acessar o DOM de um iframe que carrega um URL externo. É claro que recebo um erro “Permissão negada por” devido à segurança de vários domínios. Como posso fazer isso funcionar? Eu vi algo feito com json (mas não consigo obter uma cadeia json da minha fonte externa) e algo feito com postmessage HTML5.

você pode vê-lo ao vivo em: http://jsfiddle.net/QPBvJ/

O código é:

$(document).ready(function(){ $('#get').live('click', function() { var currentIFrame = $('#frameDemo'); currentIFrame.contents().find("a").css("background-color","#BADA55"); alert ("done") }); });   

Qual seria a maneira mais fácil de fazer isso funcionar? Obrigado

Não há como fazer isso funcionar. A menos que o domínio externo que você tenta acessar suporte um procedimento como CORS , JSONP ou postMessage .

Existem algumas exceções (como sempre):

Se você está lidando com um WebApp, por exemplo, você pode dizer aos seus usuários que eles precisam conceder access a cross-domain-calls .

No Gecko / Firefox, por exemplo, você pode ligar

 netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead') 

que permite que o navegador acesse domínios estrangeiros via ajax/iframes . Nesse cenário, um usuário precisa definir

 signed.applets.codebase_principal_support 

para true under about:config para fazer este trabalho.

Nos Internet Explorers da Internet Explorers deste mundo, há uma configuração chamada algo como allow cross-domain access profundamente oculto na guia de security , que deve ser definida para enable .

Chrome permite chamadas entre domínios com um argumento de linha de comando:

 chrome.exe --disable-web-security