2011-09-05 8 views
7

में $ doc.getElementById ("id") और document.getElementById ("id") के बीच अंतर क्या है, मैं एक जीडब्ल्यूटी अनुप्रयोग के अंदर एक मूल कार्य में काम कर रहा हूं और मैंने इन दो तरीकों का प्रयास किया है: दस्तावेज़ .getElementById ("id") शून्य लौटाता है लेकिन $ doc.getElementById() एक वैध तत्व देता है। इस तरीकों के बीच अंतर (अवधारणात्मक) कौन सा है? अग्रिम धन्यवाद।जेएसएनआई

उत्तर

7

आपके जीडब्ल्यूटी ऐप का कोड एक (छुपा हुआ) आईफ्रेम में चलाता है, इसलिए document संदर्भ है कि iframe का दस्तावेज़ (और window iframe के ब्राउज़िंग संदर्भ)। जीडब्ल्यूटी इस प्रकार जीडब्ल्यूटी ऐप को लोड करने वाले "होस्ट पेज" के दस्तावेज़ और ब्राउज़िंग संदर्भ (विंडो) को आसानी से संदर्भित करने के लिए $doc और $wnd चर को प्रारंभ करता है।

नोट linkers तय करते हैं कि कैसे संकलित कोड भरी हुई है, डिफ़ॉल्ट (std) और नए xsiframe उपयोग iframes का है, जबकि पदावनत xs भार एक ही ब्राउज़िंग संदर्भ (ताकि $doc == document और $wnd == window)

2

में अपने कोड GWT JSNI page से:

ध्यान दें कि कोड सीधे विधि के अंदर जावास्क्रिप्ट विंडो ऑब्जेक्ट का संदर्भ नहीं देता है। JSNI से ब्राउज़र की विंडो और दस्तावेज़ ऑब्जेक्ट्स तक पहुंचने पर, आपको क्रमशः $ wnd और $ doc के रूप में संदर्भित करना होगा। आपकी संकलित स्क्रिप्ट एक नेस्टेड फ्रेम में चलती है, और $ wnd और $ doc स्वचालित रूप से मेजबान पृष्ठ की विंडो और दस्तावेज़ को सही ढंग से संदर्भित करने के लिए प्रारंभ किया जाता है।

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