मैंने वास्तव में यह कोड लिखा था।
क्रॉस-सबडोमेन / पोर्ट धूमकेतु करने की कोशिश करते समय, iframe document.domain
को मूल फ्रेम के समान मूल्य की आवश्यकता होती है । दुर्भाग्य से, ब्राउज़र मूल नाम के लिए डोमेन नाम और पोर्ट को आंतरिक रूप से संग्रहीत करता है document.domain
। लेकिन जावास्क्रिप्ट में गेट्टर और सेटर बंदरगाह के बारे में कुछ भी नहीं जानता है। तो समस्या यह है: यदि शीर्ष फ्रेम document.domain
है ('example.com', 80)
, और निचला फ्रेम है ('comet.example.com', 80)
, तो आप नीचे के फ्रेम को कैसे प्राप्त ('example.com', 80)
करेंगे?
होस्टनाम भाग को बदलते समय आप पोर्ट को सेट करने के लिए जरूरी नहीं null
कर सकते हैं, इसलिए आप जो सबसे अच्छा कर सकते हैं वह ('example.com', null)
नीचे के फ्रेम में है। तो शीर्ष फ्रेम को भी उस मूल्य पर सेट करना होगा, और सेटिंग document.domain=document.domain
बस यही करता है। यह ब्राउज़र में आंतरिक प्रतिनिधित्व को बदलता ('example.com', 80)
है ('example.com', null)
और फिर सब कुछ मेल खाता है और क्रॉस-पोर्ट / सबडोमेन फ्रेम संचार काम करता है।