2010-07-18 14 views
249

मैं अपने ऐप में चर और डीओएम तत्वों को देखने के लिए क्रोम डेवलपर कंसोल का उपयोग करना चाहता हूं, लेकिन ऐप iframe (क्योंकि यह एक ओपनसामाजिक ऐप है) के अंदर मौजूद है।क्रोम डेवलपर टूल के साथ iframes डिबगिंग

तो स्थिति यह है:

<containing site> 
<iframe id='foo' src='different domain'> 
    ... my app ... 
</iframe> 
</containing site> 

वहाँ कि iframe डेवलपर कंसोल से में हो रहा चीजों का उपयोग करने की कोई तरीका है? अगर मैं डी ocument.getElementById("foo").something करने की कोशिश करता हूं, तो यह काम नहीं करता है, शायद iframe एक अलग डोमेन में है।

मैं iframe सामग्री को एक नए टैब में नहीं खोल सकता, क्योंकि iframe को भी शामिल साइट पर बात करने में सक्षम होना चाहिए।

उत्तर

472

क्रोम में डेवलपर टूल में, वहाँ शीर्ष के साथ एक बार भी है, Execution Context Selector (ज/टी felipe-sabino), बस तत्वों, नेटवर्क के तहत, सूत्रों का कहना है ... टैब, के आधार पर परिवर्तन है कि कहा जाता है वर्तमान टैब का संदर्भ। कंसोल टैब में जब उस बार में एक ड्रॉपडाउन होता है जो आपको फ्रेम संदर्भ का चयन करने की अनुमति देता है जिसमें कंसोल संचालित होगा। इस ड्रॉप डाउन में अपना फ्रेम चुनें और आप स्वयं को उपयुक्त फ्रेम संदर्भ में पाएंगे। : डी

क्रोम v59 Chrome version 59

क्रोम v33 Chrome version 33

क्रोम v32 & कम Chrome pre-version 32

+2

मुझे लगता है कि आपको उस के सही उत्तर को बदलना चाहिए। –

+1

यह क्रोम 30.0.1599.101 में टूटा हुआ प्रतीत होता है - कोड, चर, आदि का उपयोग करने के किसी भी प्रयास को अभी भी आईफ़्रेम – Kevin

+0

चुनने के बाद मूल संदर्भ से हैं। संस्करण 33.0.1750।117 बीटा-एम सुनिश्चित नहीं है कि उन्होंने इसे पैच किया है ... – Metagrapher

9

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

अद्यतन: यह अब सत्य नहीं है। Metagrapher's answer देखें।

+0

धन्यवाद युरी ... आप जानते होंगे! – Cole

+3

मैंने वेबकिट के खिलाफ एक बग दायर किया है: https://bugs.webkit.org/show_bug.cgi?id=42554 –

+3

यह समस्या अभी भी बकाया है ... लगभग एक साल बाद। –

1

जब इस तरह आपकी साइट के लिए iFrame अंक:

<html> 
    <head> 
    <script type="text/javascript" src="/jquery.js"></script> 
    </head> 
    <body> 
    <iframe id="my_frame" src="/wherev"></iframe> 
    </body> 
</html> 

आप बात इस तरह का माध्यम iFrame डोम पहुँच सकते हैं।

var iframeBody = $(window.my_frame.document.getElementsByTagName("body")[0]); 
iframeBody.append($("<h1/>").html("Hello world!")); 
1

मेरी काफी जटिल परिदृश्य में कैसे करना है के लिए स्वीकार किए जाते हैं जवाब क्रोम डी में यह मेरे लिए काम नहीं करते हैं। आप इसके बजाय फ़ायरफ़ॉक्स डीबगर (फ़ायरफ़ॉक्स डेवलपर टूल का हिस्सा) का प्रयास करना चाह सकते हैं, जो सभी 'स्रोत' दिखाता है, जिनमें आईफ्रेम

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