2010-03-22 20 views
13

में फ़ायरबग और jQuery चयनकर्ता मैं वेब अनुप्रयोग पर काम कर रहा हूं और jQuery विंडो प्लग-इन रंगबॉक्स का उपयोग कर एक विंडो पॉप अप करने के लिए जो मूल विंडो के तत्वों को संपादित करने के लिए एक फॉर्म प्रस्तुत करता है। मैं अपने जावास्क्रिप्ट और jQuery को डीबग करने के लिए फायरबग का उपयोग कर रहा हूं, और मैंने देखा कि मैं jQuery कंसोल कमांड लाइन का उपयोग करके अपने कलरबॉक्स HTML फॉर्म में कोई तत्व नहीं चुन सकता। उदाहरण के लिए:आईफ्रेम

$ date = $ ("# date");

jQuery कंसोल कमांड लाइन से चलाए जाने पर कुछ भी नहीं लौटाता है, भले ही मेरे पास id = "date" के साथ इनपुट तत्व है और फ़ायरबग "तत्व निरीक्षण" सूचक IFrame में तत्व पा सकता है। क्या आईफ्रेम में तत्वों तक पहुंचने के लिए फ़ायरबग के कंसोल को पाने का कोई तरीका है?

आपकी मदद के लिए धन्यवाद!

$('#date', $('iframe').get(0).contentDocument); 

आदेश iframe की सामग्री में पहुँच पाने के लिए, यह एक ही से लोड किया जाना चाहिए: डौग

+0

क्या आप स्पष्टीकरण दे सकते हैं, क्या पृष्ठ के हिस्से के दौरान स्क्रिप्ट सामान्य रूप से काम करती है, लेकिन कंसोल के माध्यम से नहीं चलती है? –

+0

क्या आपने 'var date = $ (" # date ") की कोशिश की;' – ant

+0

जावास्क्रिप्ट कलरबॉक्स में काम करता है, यह सिर्फ इतना है कि मैं फ़ायरबग कंसोल में jQuery के साथ iFrame में मौजूद तत्वों में हेरफेर नहीं कर सकता। –

उत्तर

16

आप क्योंकि आइफ्रेम अपनी ही है, अपने चयनकर्ता के लिए एक संदर्भ के रूप में आइफ्रेम के दस्तावेज़ पास करनी होगी डोम पेड़ अलग मूल दस्तावेज़ के रूप में डोमेन।


बस यहाँ विस्तृत करने, .contentDocument संपत्ति क्रोम (और एफएफ) में काम करता है लेकिन नहीं IE < 8. में आप .document उपयोग करना होगा।

+0

यागगो, आपके उत्तर के लिए धन्यवाद, क्या आप थोड़ा और विस्तार कर सकते हैं? मैं आईफ्रेम के संदर्भ तक पहुंचने का मतलब "प्राप्त नहीं कर रहा हूं"। धन्यवाद, डौग –

+0

बस यहां विस्तृत करने के लिए, '.contentDocument' प्रॉपर्टी क्रोम (और एफएफ) में काम करती है लेकिन आईई में नहीं। आपको '। दस्तावेज़ 'का उपयोग करना होगा। – Aliostad

21

आप cd विधि, यहाँ प्रलेखित लिए देख रहे हैं: http://getfirebug.com/wiki/index.php/Command_Line_API

यहाँ फेसबुक आवेदन IFrame की एक बुकमार्कलेट मैं किसी भी के लिए iframe में कूदने को स्वचालित करने के लिए उपयोग है। इसे आपके उपयोग के लिए संशोधित करने के लिए पर्याप्त उदाहरण प्रदान करना चाहिए।

javascript:with(_FirebugCommandLine){cd($$(".canvas_iframe_util")[0].contentWindow)} 

ध्यान दें कि with आम तौर पर खराब व्यवहार का है, लेकिन इस सचमुच कैसे Firebug कार्यान्वित क्या आप कंसोल में टाइप करें, तो मुझे लगता है कि मजाक उड़ाया है।

इसे चलाने के बाद, आप जो कुछ भी कमांड लाइन में टाइप करते हैं, वह iframe के संदर्भ में निष्पादित होता है।

+3

यह प्रतिभा है। उस स्निपेट को साझा करने के लिए धन्यवाद। यह फेसबुक iframe ऐप विकास को बहुत आसान बनाता है। –

+4

स्पष्टीकरण के लिए, यदि आप फायरबग कंसोल में हैं तो आपको सीडी (iframedom.contentWindow) –

+0

हां चाहिए, हालांकि इसके लिए एक बुकमार्कलेट एक सुपर आसान टूल है। – bcherry

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