iframe, एम्बेड और ऑब्जेक्ट तत्वों के बीच अंतर


180

एचटीएमएल 5 कई एम्बेडेड सामग्री तत्वों को परिभाषित करता है, जो एक पक्षी की आंखों के दृश्य से, काफी हद तक समान होने के बिंदु के समान प्रतीत होता है।

और iframe, के बीच वास्तविक अंतर क्या है ?embedobject

यदि मैं किसी तृतीय-पक्ष साइट से एक HTML फ़ाइल एम्बेड करना चाहता हूं, तो मैं इनमें से कौन से तत्वों का उपयोग कर सकता हूं और वे कैसे भिन्न होंगे?


वे वास्तव में बिल्कुल समान नहीं दिखते। तीसरे पक्ष की साइट एक iframe होगी।
काई क्विंग

एम्बेड बनाम ऑब्जेक्ट सब्मिट: stackoverflow.com/questions/1244788/embed-vs-object , iframe बनाम ऑब्जेक्ट सब्मिट: stackoverflow.com/questions/924946/… , वीडियो बनाम ऑब्जेक्ट एम्बेड करें: stackoverflow.com/questions/11199048/…
शेरो शांतिली 郝海东 冠状 病 事件 法轮功 '

2
@KaiQing वे समान दिखते हैं या नहीं आपकी राय है, जाहिर है कि ओपी द्वारा साझा नहीं किया गया है। ओह, और वैसे, यह उनके सवाल का जवाब नहीं है, या तो।
मलिक ए। रूमी

1
@ मालीक - इसीलिए यह एक टिप्पणी है। और नहीं, समान दिखना मेरी राय नहीं है क्योंकि प्रत्येक की परिभाषाएं स्पष्ट रूप से मतभेदों को रेखांकित करती हैं और जब आप प्रत्येक का उपयोग करेंगे। वे सामने के छोर पर कैसे दिखाई देते हैं सैद्धांतिक रूप से समान दिख सकते हैं लेकिन मुझे लगता है कि ओपी का संदर्भ उपयोग में था और उपस्थिति नहीं। टिप्पणी यह ​​बताने के लिए है कि आप तीसरे पक्ष के लिए एक iframe का उपयोग करेंगे, जैसा कि उन्होंने पूछा था। मैं केवल यह मान सकता हूं कि मैं एक पूर्ण उत्तर वापस लिखने में बहुत व्यस्त था।
काई क्विंग

अब MDN के पास विस्तृत विवरण है। डेवलपर
pm.millailla.org/en-US/docs/Learn/HTML/…

जवाबों:


122

<iframe>

Iframe तत्व नेस्टेड ब्राउज़िंग संदर्भ का प्रतिनिधित्व करता है। HTML 5 मानक - " <iframe>तत्व"

मुख्य रूप से अन्य डोमेन या उप डोमेन से संसाधनों को शामिल करने के लिए उपयोग किया जाता है, लेकिन उसी डोमेन से सामग्री को भी शामिल करने के लिए उपयोग किया जा सकता है। <iframe>जी 'और मूल दस्तावेज़ के साथ संवाद कर सकते हैं की ताकत है कि एम्बेडेड कोड है'।

<embed>

HTML 5 में मानकीकृत, इससे पहले यह एक गैर मानक टैग था, जिसे सभी प्रमुख ब्राउज़रों द्वारा स्वीकार किया गया था। HTML 5 से पहले व्यवहार भिन्न हो सकते हैं ...

एम्बेड तत्व बाहरी (आमतौर पर गैर-HTML) अनुप्रयोग या इंटरैक्टिव सामग्री के लिए एक एकीकरण बिंदु प्रदान करता है। ( HTML 5 मानक - " <embed>तत्व" )

ब्राउज़र प्लगइन्स के लिए सामग्री एम्बेड करने के लिए उपयोग किया जाता है। इसके अपवाद एसवीजी और एचटीएमएल हैं जो मानक के अनुसार अलग-अलग हैं।

एम्बेडेड सामग्री के साथ क्या और क्या नहीं किया जा सकता है, इसका विवरण प्रश्न में ब्राउज़र प्लगइन तक है। लेकिन एसवीजी के लिए आप अभिभावक से एम्बेडेड एसवीजी दस्तावेज कुछ इस तरह से प्राप्त कर सकते हैं:

svg = document.getElementById("parent_id").getSVGDocument();

एक एम्बेडेड एसवीजी या एचटीएमएल दस्तावेज़ के अंदर से आप अभिभावक तक पहुँच सकते हैं:

parent = window.parent.document;

एम्बेडेड HTML के लिए माता-पिता से एम्बेडेड दस्तावेज (जो मुझे मिला है) पर पाने का कोई तरीका नहीं है।

<object>

<object>तत्व, एक बाहरी संसाधन है, जो, संसाधन के प्रकार पर निर्भर करता है, या तो एक छवि के रूप में माना जाएगा प्रतिनिधित्व कर सकते हैं एक नेस्टेड ब्राउज़िंग संदर्भ के रूप में, या एक बाहरी संसाधन के रूप में एक प्लगइन द्वारा संसाधित किया जा करने के लिए। ( HTML 5 मानक - " <object>तत्व" )

निष्कर्ष

जब तक आप एसवीजी या किसी स्थिर चीज को एम्बेड नहीं कर रहे हैं, जिसका आप शायद सबसे अच्छा उपयोग कर रहे हैं <iframe>। एसवीजी का उपयोग शामिल करने के लिए <embed>(यदि मुझे याद है <object>कि आप स्क्रिप्ट को सही ढंग से नहीं बताएंगे)। ईमानदारी से मैं नहीं जानता कि आप <object>पुराने ब्राउज़रों या फ्लैश के लिए उपयोग क्यों करेंगे (जो मैं काम नहीं करता)।

In जैसा कि नीचे टिप्पणी में बताया गया है; स्क्रिप्ट्स <object>चलेंगी लेकिन माता-पिता और बच्चे के संदर्भ सीधे संवाद नहीं कर सकते। साथ <embed>आप माता-पिता और इसके विपरीत से बच्चे के संदर्भ प्राप्त कर सकते हैं। इसका मतलब है कि आप बच्चे के साथ छेड़छाड़ करने के लिए माता-पिता में स्क्रिप्ट का उपयोग कर सकते हैं आदि यह हिस्सा संभव नहीं है <object>या <iframe>जहां आपको इसके बजाय कुछ अन्य तंत्र स्थापित करना होगा, जैसे कि जावास्क्रिप्ट पोस्टमासेज एपीआई


4
embedएक वेबसाइट पर आने वाली पुनर्निर्देशित श्रृंखला का पालन करने के लिए आगंतुक प्राप्त करने के लिए आदर्श है जो फ्रेमिंग को अवरुद्ध करता है। (हम इसका इस्तेमाल फेडरेटेड लॉगिन को बंद करने के लिए करते हैं।)
राइजिंग

3
"ऑब्जेक्ट स्क्रिप्ट नहीं होने देगा" के बारे में सच नहीं है। schepers.cc/svg/blendups/embedding.html
Dzenly

उदाहरण के लिए, और उदाहरण के लिए, और SVG में शामिल स्क्रिप्ट्स <object>चलेंगी, लेकिन यह संभव नहीं है (या मैंने प्रबंधन नहीं किया है) मूल पृष्ठ से ऑब्जेक्ट के संदर्भ में प्राप्त करने के लिए। तो "आंतरिक" स्क्रिप्ट चलेंगी, "बाहरी" स्क्रिप्ट, ऑब्जेक्ट के दृष्टिकोण से, वस्तुओं के संदर्भ के साथ संवाद नहीं कर सकती हैं।
जोनास शूबर्ट एर्लडसन

<एम्बेड> वास्तव में पुराना है। मैं अब और किसी चीज के लिए इसका इस्तेमाल नहीं करूंगा। आज हर प्रमुख ब्राउज़र हर प्लगइन के लिए ऑब्जेक्ट का उपयोग करने में सक्षम है। यदि आप फ़्लैश का उपयोग करना चाहते हैं और सीएलएसआईडी के बजाय इसके प्रकार को परिभाषित करते हैं तो यह हर ब्राउज़र में उसी तरह काम करेगा। यह जावा एप्लेट भी चला सकता है। हालाँकि, मैं अभी भी बाहरी पेज एम्बेड करने के लिए iframes का उपयोग करूंगा।
बछसौ

2
@ बाचसाऊ चूंकि यह विभिन्न विकल्पों के बारे में एक चर्चा है और उनके व्यापार के बारे में यह कहना गलत है कि केवल खाली कहने <iframe />का तरीका गलत है । पोस्ट की पूरी बात यह है कि वे सभी अलग हैं। <embed>अभी भी कल्पना में है: w3.org/TR/html5/embedded-content-0.html#the-embed-element , इसलिए इसका उल्लेख करना उचित है। मुझे यह भी थोड़ा अजीब लगता है कि आप तर्क देते हैं कि <embed>यह पुराना है और अगले वाक्य में जावा एप्लेट का उल्लेख करते हैं :)
जोनास शूबर्ट एर्लडसन

28

objectओवर iframeका उपयोग करने का एक कारण यह है कि ऑब्जेक्ट ऑब्जेक्ट आयामों को फिट करने के लिए एम्बेडेड सामग्री को फिर से आकार देता है। iPhone 4s में जहाँ स्क्रीन की चौड़ाई है 320pxऔर एम्बेडेड URL से HTML अधिक आयाम सेट कर सकता है, सफारी पर सबसे उल्लेखनीय है ।


9
क्या आप कृपया अधिक जानकारी और / या संदर्भ दे सकते हैं? अन्यथा, यह केवल एक टिप्पणी के रूप में योग्य है, उत्तर के रूप में नहीं।
19st16

9
हाँ, लेकिन यह एक उपयोगी टिप्पणी है
मलिक ए। रूमी

1
यह मेरा उपयोग मामला था, निश्चित रूप से एक अच्छा सहायक टिप्पणी। धन्यवाद।
सिड

8
iFrame + iPhone = iHeadache
djvg

4

objectआइफ्रेम पर उपयोग करने का एक अन्य कारण यह है कि objectउप-संसाधन (जब कोई अनुरोध <object>करता है HTTP) को passive/displayइसके संदर्भ में माना जाता है Mixed content, जिसका अर्थ है कि यह आपके पास होने पर अधिक सुरक्षित है Mixed content

मिश्रित सामग्री का मतलब है कि जब आपके पास है httpsलेकिन आपका संसाधन है http

संदर्भ: https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content


यह लिंक किए गए लेख के वर्तमान पढ़ने के आधार पर प्रतीत नहीं होता है, जो सक्रिय और निष्क्रिय दोनों शीर्षकों के तहत ऑब्जेक्ट को सूचीबद्ध करता है। निष्क्रिय: "उप-स्रोत (जब एक <ऑब्जेक्ट> HTTP अनुरोध करता है)" / सक्रिय: "<ऑब्जेक्ट> (डेटा विशेषता)" (बाद में आप मूल प्रश्न के अनुसार एक और HTTP अनुरोध कैसे लोड करते हैं।
टिम एबेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.