2010-06-13 6 views
6

पेज A.com 2 iframes B.com/page1 और B.com/page2 है से है।एक एक और iframe में जावास्क्रिप्ट समारोह निष्पादित जब माता-पिता अलग डोमेन

<html><body> 
    <iframe src="b.com/page1" name="iframe1" id="iframe1"> 
    <iframe src="b.com/page2"> 
</body></html> 

मैं B.com/page2 से B.com/page1 पर js समारोह निष्पादित करने के लिए करना चाहते हैं: यह A.com का कोड है। दोनों नीचे दिए गए उदाहरण में अच्छी तरह से काम करता है जब माता पिता क्रॉस डोमेन परिदृश्य में एक ही डोमेन से है, लेकिन नहीं:

parent.window.frames['iframe1'].SomeFunction(args); 

या

parent.document.getElementById('iframe1').contentWindow.SomeFunction(args); 

वहाँ यह करने के लिए कोई तरीका है?

उत्तर

7
के बजाय

: की तलाश 10

उपयोग

parent.frames['iframe1'].SomeFunction(args); 

आप किसी भी खिड़की है कि आप संदर्भित कर सकते हैं की frames संग्रह पार करने के लिए अनुमति दी जाती है, लेकिन इस मामले में आप parent की पुनरावर्ती window संपत्ति (जो खिड़की है) पार करने के लिए कोशिश कर रहे हैं। इसकी अनुमति नहीं है।

+0

शॉन, लेकिन खिड़की। विन्डो बिल्कुल खिड़की की तरह है। हालांकि- मैंने इस 'parent.window.window.window.frames [' if1 '] की कोशिश की। Window.window.window.s2 (1)' और यह काम किया ... (या आप किसी और चीज के बारे में बात करते हैं?) –

3

नहीं, ब्राउज़र उसी डोमेन पर मौजूद आईफ्रेम के बीच इंटरैक्ट की अनुमति नहीं देता है।

+0

बस इसे स्पष्ट करने के लिए। यद्यपि 2 iframes एक ही डोमेन से हैं, उनके लिए बातचीत करने का कोई सीधा तरीका नहीं है क्योंकि माता-पिता विभिन्न डोमेन से हैं? – Frushko

+0

नहीं, क्योंकि iframes पैरेंट फ्रेम के माध्यम से एक दूसरे से "बात" कर सकते हैं, और फ्रेम किसी भिन्न डोमेन से पैरेंट फ्रेम तक नहीं पहुंच सकते हैं। –

+2

दरअसल, यह गलत है। उसे केवल 'parent.window.frames' को' parent.frames' –

0

जैसा कि हारून ने आपको पहले ही बताया है, ब्राउज़र इसकी अनुमति नहीं देते हैं, लेकिन इसके आसपास के तरीके हैं। आपको एक छोटा हैक बनाना होगा। यूजीन ग्लेडिशहेव में post on it on his blog है।

0

हारून राज्यों के रूप में, यह iframes के बीच बातचीत करने की अनुमति नहीं है, लेकिन आप easyXDM पर एक नज़र चाहिए, यह जावास्क्रिप्ट में क्रॉस डोमेन संचार के साथ मदद करता है:

http://easyxdm.net/wp/

यहाँ उदाहरण आप हो सकता है है

http://easyxdm.net/wp/2010/03/17/sending-and-receiving-messages/

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