Mir*_*cea 16 jquery cross-domain
我正在尝试访问加载外部URL的iframe的DOM.当然,由于跨域安全性,我得到"权限被拒绝"错误.我怎样才能做到这一点?我看到用json完成了一些事情(但是我无法从外部源获取json字符串)以及使用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>
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?谢谢
jAn*_*ndy 27
没有办法让这项工作.除非,您尝试访问的外部域支持CORS,JSONP或postMessage等过程.
有一些例外(像总是一样):
例如,如果您正在处理WebApp,则可以告诉用户他们必须授予访问权限cross-domain-calls.
例如,在Gecko/Firefox中,你可以打电话
netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead')
Run Code Online (Sandbox Code Playgroud)
这使浏览器可以通过访问外部域ajax/iframes.在这种情况下,用户必须设置
signed.applets.codebase_principal_support
Run Code Online (Sandbox Code Playgroud)
到true下about:config,使这项工作.
在Internet Explorers这个世界中,有一个设置称为allow cross-domain access深藏在security选项卡中的东西,必须设置为enable.
Chrome 允许使用命令行参数进行跨域调用:
chrome.exe --disable-web-security
Run Code Online (Sandbox Code Playgroud)