2010-03-21 16 views
5

मैं एक पेज पर CodeMirror (http://marijn.haverbeke.nl/codemirror/) लागू कर रहा हूं जहां दस्तावेज़.डोमेन को घोषित करने की आवश्यकता है (पृष्ठ पर अन्य IFRAMES के कारण)।डायनामिक रूप से जेनरेट किए गए IFRAME के ​​लिए document.domain कैसे सेट करें?

कोडमिरर सिंटैक्स हाइलाइट कोड संपादन प्रदान करने के लिए गतिशील IFRAME उत्पन्न करता है।

this.win = frame.contentWindow; 
... 
var doc = this.win.document; <-- ERROR 
doc.open(); 
doc.write(html.join("")); 
doc.close(); 

यह पता चला आईई माता पिता IE से document.domain वारिस नहीं करता है: समस्या यह है कि आईई निकलती है 'प्रवेश निषेध' (अन्य ब्राउज़रों ठीक हैं) कोड दर्पण कोड का निम्न भाग में है। मैं IFRAME सामग्रियों में document.domain सेट कर सकता हूं लेकिन आईई सामग्री को सेट करने से पहले त्रुटि को फेंकता है। इस समस्या से निपटने के लिए कोई विचार?

+0

यहां एक समान मुद्दे पर चर्चा की गई है लेकिन कामकाज मेरे लिए काम नहीं करता है http://www.telerik.com/community/forums/aspnet-ajax/editor/document-domain-access-denied-in-ie -6.aspx –

+1

क्षमा करें, लेकिन CodeMirror_boilerplate ऑब्जेक्ट अन्य [उत्तर] [1] में क्या है? एक div? एक आईफ्रेम? क्या? [1]: http: //stackoverflow.com/questions/2486901/how-to-set-document-domain-for-a-dynamically-generated-iframe/2487023#2487023 – JwJosefy

उत्तर

9

इसे काम करने के लिए मिला। एक हैक TinyMCE कोड से प्रेरित है।

var u = 'javascript:(function(){document.open();document.domain="' + document.domain + '";var ed = window.parent.CodeMirror_boilerplate;document.write(ed);document.close();})()'; 

frame.src = u;

यह एसआरसी में document.domain और नहीं डोम द्वारा निर्धारित करता है।

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