外部URLをロードするiframeのDOMにアクセスしようとしています。もちろん、クロスドメインセキュリティのために「アクセスが拒否されました」というエラーが表示されます。どうすればこれを機能させることができますか?私はjsonで何かが行われているのを見ました(しかし、外部ソースからjson文字列を取得することはできません)そしてHTML5ポストメッセージで何かが行われています。
あなたはそれがライブで見ることができます: 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>
これを機能させる最も簡単な方法は何でしょうか。ありがとうございました
これを機能させる方法はありません。アクセスしようとしている外部ドメインが C.O.R.S 、 [〜#〜] 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
には、security
タブに深く隠されたallow cross-domain access
のような設定があります。これはenable
に設定する必要があります。
Chrome
は、コマンドライン引数を使用したクロスドメイン呼び出しを許可します。
chrome.exe --disable-web-security