2011-05-23 17 views
5

से किसी जेएस फ़ंक्शन तक पहुंचने के लिए ट्रिंग करते समय अनुमति अस्वीकार कर दी गई है।जावास्क्रिप्ट, आईफ्रेम, सुरक्षा - पैरेंट विंडो

मेरे पास एक पृष्ठ है जिसमें एक आईफ्रेम शामिल है। उस iframe में मेरे पास एक स्क्रिप्ट है जिसे टेस्ट() कहा जाता है। मुझे पैरेंट विंडो से फ़ंक्शन तक पहुंचने की आवश्यकता है। चारों ओर पूछने के बाद मुझे इस समाधान के लिए मिला:

<div onclick="document.getElementById('targetFrame').contentWindow.teste();">Test</div> 

क्लिक फ़ंक्शन पर क्लिक किया जाना चाहिए। समस्या यह है कि मुझे "संपत्ति परीक्षण तक पहुंचने के लिए अनुमति अस्वीकार" त्रुटि मिलती है।

यह मुझे एक त्रुटि त्रुटि की तरह लग रहा था इसलिए मैंने 777 पर आईफ्रेम अनुमतियों में लोड की गई फ़ाइल को बदल दिया, लेकिन बिना किसी परिणाम के।

नोट: iframe में लोड की गई फ़ाइल एक ही डोमेन पर नहीं है।

+1

इस से पहले कई बार कहा गया है: http://stackoverflow.com/questions/364952/jquery-javascript-accessing-contents-of-an-iframe – ashwoods

उत्तर

10

डिफ़ॉल्ट रूप से अन्य डोमेन से पृष्ठों तक पहुंचने के लिए निषिद्ध है, क्योंकि ब्राउज़र same origin policy का उपयोग करते हैं। फ्रेम के बीच संवाद करने के लिए location.hash या window.name का उपयोग करने जैसे कई कामकाज हैं। एचटीएमएल 5 में सबसे हालिया और मानकीकृत पोस्ट मैसेज-इंटरफ़ेस है। क्रॉस-ब्राउज़र समाधान http://easyxdm.net/wp/ के लिए लाइब्रेरी है।

+1

ठीक है ... कैसे करना है मैं इसे बदलता हूँ? मेरे पास दोनों डोमेन पर रूट पहुंच है। – zozo

+0

यह इंट्रानेट के लिए है, जहां आपके पास सभी ब्राउज़रों पर नियंत्रण है? – ashwoods

+0

यदि यह मामला है, तो http://easyxdm.net/wp/ – bjornd

3

मुझे यकीन नहीं है कि यह संभव है, तो क्रॉस विंडो (फ्रेम) संचार एक ही डोमेन, प्रोटोकॉल और होस्टनाम पर होना चाहिए। अधिक जानकारी के लिए Same origin policy for JavaScript देख सकते हैं और Cross domain communication with iframes

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