2009-07-06 21 views
166

के भीतर से तत्व प्राप्त करें <div> को से कैसे प्राप्त करें और इसे मेरे पृष्ठ पर प्रिंट करें?आईफ्रेम

उत्तर

268
var iframe = document.getElementById('iframeId'); 
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 

आप और अधिक बस लिख सकते हैं:

var iframe = document.getElementById('iframeId'); 
var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 

और पहली वैध आंतरिक दस्तावेज़ लौटा दी जाएगी।

एक बार जब आप आंतरिक दस्तावेज़ प्राप्त कर लेते हैं, तो आप अपने आंतरिक पृष्ठ तक पहुंच सकते हैं जैसे आप अपने वर्तमान पृष्ठ पर किसी भी तत्व तक पहुंच सकते हैं।

महत्वपूर्ण (innerDoc.getElementById ... आदि।): सुनिश्चित करें कि iframe एक ही डोमेन पर है, अन्यथा आप अपने आंतरिक के लिए उपयोग नहीं कर सकते। वह क्रॉस-साइट स्क्रिप्टिंग होगा।

+4

शानदार उत्तर। क्या आप जानते थे कि आप कर सकते हैं: var innerDoc = iframe.contentDocument || iframe.contentWindow.document; // अधिक पठनीय और इसका मतलब है –

+1

हाँ, मुझे इसके बारे में पता था। – geowa4

+5

मैंने लोगों को टर्नरी ऑपरेटरों से अधिक भ्रमित देखा है। वे नहीं जानते कि पहला वैध लौटाया गया है। – geowa4

4
window.parent.document.getElementById("framekit").contentWindow.CallYourFunction('pass your value') 

CallYourFunction() पृष्ठ के अंदर समारोह और उस समारोह कार्रवाई उस पर अन्य उत्तर की

+4

वह एक आईफ्रेम से फ़ंक्शन को कॉल कर रहा है, तत्व का संदर्भ नहीं प्राप्त कर रहा है। –

1

कोई भी मेरे लिए काम कर रहे थे।

var el = document.getElementById("iframeId").contentWindow.functionNameToCall(); 
3

आइफ्रेम का उपयोग करने के लिए मत भूलना:

function getElementWithinIframe() { 
    return document.getElementById('copy-sheet-form'); 
} 

तो फिर तुम तो तत्व को पुनः प्राप्त करने की तरह है कि फ़ंक्शन को कॉल करें: मैं अपने iframe के भीतर एक समारोह है कि वस्तु मैं खोज रहा था रिटर्न बना दी लोड होने के बाद। JQuery के बिना पुराना लेकिन विश्वसनीय तरीका:

<iframe src="samedomain.com/page.htm" id="iframe" onload="access()"></iframe> 

<script> 
function access() { 
    var iframe = document.getElementById("iframe"); 
    var innerDoc = iframe.contentDocument || iframe.contentWindow.document; 
    console.log(innerDoc.body); 
} 
</script> 
संबंधित मुद्दे