2010-04-22 10 views
5

क्या पृष्ठ पर मौजूद स्क्रिप्ट के साथ iframe सामग्री (न केवल गुणों की तरह गुणों को पढ़ना/संपादित करना संभव है) लेकिन इस फ्रेम के बाहर? मुझे पता है कि स्रोत असंभव है अगर स्रोत अन्य साइट से है क्योंकि यह एक बड़ा सर्जरी होल होगा, लेकिन मैं केवल यह पूछता हूं कि यह एक ही उत्पत्ति से अन्य सामग्री के लिए काम करता है या नहीं।जावास्क्रिप्ट और एक ही मूल iframes

+0

मुझे लगता है कि इस लिंक का कहना है यह सब [स्क्रिप्टिंग इफ्रेम - ट्यूटोरियल और उदाहरण] (http://www.dyn-web.com/tutorials/iframes/) – mplungjan

उत्तर

0

अगर iframe-सामग्री एक ही डोमेन से है कि आप इसे frames.myiframe.getElement...

0

ब्राउज़र केवल iframe सामग्री के लिए/माता-पिता सामग्री है जो एक ही डोमेन से नहीं है के लिए उपयोग को प्रतिबंधित करता है का उपयोग करके उपयोग कर सकते हैं। उसी डोमेन से अनुरोधों के लिए आप window.parent या myiframe.document.getElementById

3

के माध्यम से सामग्री तक पहुंच सकते हैं हां, यदि आप iframe और parent पृष्ठ का स्थान समान होस्ट (समान मूल नीति) के स्थान पर हैं, तो आप ऐसा कर सकते हैं।

ब्राउज़र आप से करने देंगे सुनिश्चित करने के लिए, आप पैरेंट पृष्ठ पर और iframe में

document.domain = "example.com" 

उपयोग कर सकते हैं। (कि subdomain.example.com ध्यान दें और example.com अलग हैं)

इस (iframe पर पैरेंट पृष्ठ) करने के लिए डोम विधि:

document.getElementById("myiframe").contentWindow.document.getElementById("divinframe").innerHTML = "I'm on the inside."; 

document.getElementById("myiframe").contentWindow.someFunctionInsideIframe();

contentWindow जवाब है और यदि सभी आधुनिक ब्राउज़र नहीं हैं, निश्चित रूप से क्रोम, यानी 7 + आदि

दूसरी तरफ जाने के लिए (मूल पृष्ठ पर iframe):

top.document.getElementById("DivInTopParent") 
4

क्या पहले से ही एक ही डोमेन से लोड iframes के साथ बातचीत के बारे में कहा गया है करने के लिए जोड़ने के लिए: पेज कि कोशिश कर रहा है के रूप में

ब्राउज़र आप iframes (या फ्रेम) के साथ बातचीत करने की अनुमति देगा, जब तक बातचीत करने के लिए और आपके द्वारा लोड किए गए पृष्ठ में एक ही दस्तावेज़ है। डोमेन।

आप उस होस्ट के प्रत्यय पर दस्तावेज़.डोमेन सेट कर सकते हैं जिसे आप से लोड किया गया था। जैसे यदि आप एक पेज blog.fred.com से भरी हुई है और यह कुछ सेवा बुलाया jsonservice.fred.com के साथ बातचीत करना चाहता है, दोनों पृष्ठों जावास्क्रिप्ट से पहले

document.domain = 'fred.com'; 

करने के लिए से एक के साथ बातचीत करने में सक्षम हो जाएगा होगा अन्य।

ब्राउज़र, पर्याप्त चतुर आप '.com' करने के लिए अपने दस्तावेज.डीओएमेन को सेट करने के लिए अनुमति देने के लिए नहीं कर रहे हैं मामले में आप सोच रहे थे ...

0

यह ठीक एक क्लाइंट-साइड/जावास्क्रिप्ट समाधान नहीं है, लेकिन यह इस मुद्दे को हल करने में मेरी मदद की।IE के लिए

Content-Security-Policy: frame-ancestors 'self' example.com *.example.com 

और अतिरिक्त एक:

आप X-Frame-Options हेडर को दूर करने के मौजूद होने पर, और बदले iframe पृष्ठ के लिए निम्न एक भेज जरूरत

X-Content-Security-Policy: frame-ancestors 'self' example.com *.example.com 
संबंधित मुद्दे