jQuery跨域iframe脚本

我正在尝试访问加载外部URL的iframe的DOM。 当然,由于跨域的安全性,我得到了“权限被拒绝”的错误。 我怎样才能做这个工作? 我看到使用json完成了一些操作(但是我无法从外部源获取jsonstring)以及使用HTML5 postmessage完成的操作。

你可以看到它住在: http : //jsfiddle.net/QPBvJ/

代码是:

$(document).ready(function(){ $('#get').live('click', function() { var currentIFrame = $('#frameDemo'); currentIFrame.contents().find("a").css("background-color","#BADA55"); alert ("done") }); }); <iframe src="http://api.jquery.com/" width="80%" height="600" id='frameDemo'></iframe> <button id="get">Get</button> 

最简单的方法是什么? 谢谢

没有办法做这个工作。 除非您尝试访问的外部域支持像CORS , JSONP或postMessage这样的过程。

有一些例外(如总是):

如果您正在处理WebApp,则可以告诉用户必须授予对cross-domain-calls访问权限。

以Gecko / Firefox为例,你可以打电话

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

这使浏览器可以通过ajax/iframes访问外部域。 在这种情况下,用户必须设置

 signed.applets.codebase_principal_support 

about:config下为true来完成这个工作。

在这个世界的Internet Explorers中,有一个设置叫做allow cross-domain access隐藏在security选项卡中,必须设置为enable

Chrome允许使用命令行参数进行跨域调用:

 chrome.exe --disable-web-security