2010-06-21 34 views
16

Harici bir URL yükleyen bir iframe'in DOM'sine erişmeye çalışıyorum. Elbette, etki alanı güvenliği nedeniyle "İzin reddedildi" hatası alıyorum. Bu işi nasıl yapabilirim? Ben json ile yapılan bir şey gördüm (ama dış kaynaktan bir json dize alamıyorum) ve HTML5 postmessage ile biten bir şey.jQuery etki alanı iframe komut dosyası oluşturma

sen canlı görebilirsiniz: http://jsfiddle.net/QPBvJ/

kodudur:

$(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> 

ne kolay yolu bu işi yapmak için olacaktır. Teşekkür ederiz

+0

: ** [Yükleme alanları arası html sayfası jQuery AJAX ile] (http

Chrome alanlar arası bir komut argümanı aramaları sağlar: //stackoverflow.com/a/17299796/2247494)** – jherax

cevap

27

Bu işi yapmanın bir yolu yok. Erişmeye çalıştığınız yabancı etki alanı, C.O.R.S, JSONP veya postMessage gibi bir yordamı desteklemediği sürece.

(her zamanki gibi) birkaç istisnası vardır: Eğer örneğin bir WebApp dikkatli davranmalıyız

, onlar cross-domain-calls erişim izni vermek zorunda kullanıcıların söyleyebilir.

örneğin Gecko/Firefox'ta, sen ajax/iframes yoluyla yabancı etki erişmek için tarayıcı sağlayan

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

çağırabilir. Bu senaryoda, bir kullanıcı bu işi yapmak için about:config altında true için

signed.applets.codebase_principal_support 

ayarlamak zorundadır. Bu dünyanın Internet Explorers yılında

, enable olarak ayarlanması gerekir derinden security sekmede gizli allow cross-domain access gibi adı olan bir ayar yoktur. Web alanları arası isteklere ilgili olan bu yayını kontrol edebilirsiniz

chrome.exe --disable-web-security 
+0

Tamam, bilgi için teşekkürler. Bunun üzerinde çalışıyorum, işe yaramalı. – Mircea

+0

Çapraz etki alanı istekleriyle ilgili bazı bilgileri burada bulabilirsiniz: ** [jQuery AJAX ile çapraz etki alanı html sayfası yükleme] (http://stackoverflow.com/a/17299796/2247494) ** – jherax

İlgili konular