2010-06-21 19 views
16

मैं एक बाहरी यूआरएल लोड करने वाले आईफ्रेम के DOM तक पहुंचने का प्रयास कर रहा हूं। निश्चित रूप से मुझे क्रॉस डोमेन सुरक्षा के कारण "अनुमति के लिए अनुमति" त्रुटि मिलती है। मै इसे काम मे कैसे ले सकता हूँ? मैंने जेसन के साथ कुछ किया (लेकिन मुझे अपने बाहरी स्रोत से जेसन स्ट्रिंग नहीं मिल सकती) और एचटीएमएल 5 पोस्टमेसेज के साथ कुछ किया गया।jQuery क्रॉस डोमेन iframe स्क्रिप्टिंग

आप इसे लाइव पर देख सकते हैं: 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> 

क्या यह काम करने के लिए सबसे आसान तरीका होगा। धन्यवाद

+0

क्रॉस डोमेन अनुरोध करने के लिए एक संबंधित के साथ इस पोस्ट की जाँच कर सकते हैं:

Chrome क्रॉस-डोमेन एक कमांडलाइन तर्क के साथ कॉल की अनुमति देता है: //stackoverflow.com/a/17299796/2247494)** – jherax

उत्तर

27

इस काम को करने का कोई तरीका नहीं है। जब तक आप जिस विदेशी डोमेन तक पहुंचने का प्रयास नहीं करते हैं, C.O.R.S, JSONP या postMessage जैसी प्रक्रिया का समर्थन करता है।

वहाँ (हमेशा की तरह) में कुछ अपवाद हैं:

आप उदाहरण के लिए एक webapp साथ काम कर रहे हैं, तो आप cross-domain-calls तक पहुंच प्रदान करने के लिए है कि वे अपने उपयोगकर्ताओं को बता सकते हैं।

उदाहरण के लिए छिपकली/Firefox में, आप

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

जो ajax/iframes के माध्यम से विदेशी डोमेन का उपयोग करने के लिए सक्षम बनाता है ब्राउज़र कॉल कर सकते हैं। इस परिदृश्य में, एक उपयोगकर्ता about:config तहत

signed.applets.codebase_principal_support 
true को

स्थापित करने के लिए यह काम करने के लिए है।

इस दुनिया के Internet Explorers में, वहाँ एक की स्थापना, allow cross-domain access गहरा security टैब में छिपा हुआ जैसा कुछ कहा जो enable पर सेट होना आवश्यक है। (Http [jQuery AJAX के साथ पार लोड हो रहा है डोमेन html पृष्ठ] **:

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

ठीक है, जानकारी के लिए thanx। मैं इस पर काम कर रहा हूं, इसे काम करना चाहिए। – Mircea

+0

यहां आप क्रॉस डोमेन अनुरोध से संबंधित कुछ जानकारी प्राप्त कर सकते हैं: ** [jQuery AJAX के साथ क्रॉस डोमेन HTML पृष्ठ लोड हो रहा है] (http://stackoverflow.com/a/17299796/2247494) ** – jherax

संबंधित मुद्दे