एचटीएमएल 5 में फ्रेम क्यों अपग्रेड किए गए, लेकिन आईफ्रेम नहीं?


67

एचटीएमएल 5 में फ्रेम क्यों अपग्रेड किए गए, लेकिन आईफ्रेम नहीं? आखिरकार, दोनों के बीच लगभग कोई अंतर नहीं है। कई उदाहरणों में दोनों में से कोई एक ही आउटपुट देता है (यदि मुझे गलत लगे तो क्षमा करें)?



लिंक के लिए धन्यवाद, लेकिन दोनों के बीच थोड़ा अंतर क्या है, कि iframes पदावनत नहीं हुआ।

1
क्योंकि फ्रेम शुरू से ही एक भयानक विचार थे लेकिन iframes में कुछ वैध उपयोग के मामले होते हैं?
गॉर्डन

जवाबों:


81

आपकी पोस्ट में कुछ गलत धारणाएँ हैं। सबसे पहले, frameऔर framesetतत्वों को एचटीएमएल 5 में नहीं निकाला जाता है, वे अप्रचलित हैं (यानी, उन्हें पूरी तरह से हटा दिया गया है)।

दूसरा, frameऔर framesetतत्व तत्व के समान नहीं हैं iframe, और न ही वे समान आउटपुट देते हैं:

  • framesetवे प्रयोज्य और पहुँच के लिए बुरा कर रहे हैं, और वे क्या पूरा करने के लिए है पूरी तरह से सीएसएस और सर्वव्यापी सर्वर साइड विकास द्वारा प्रतिस्थापित किया गया इरादा: तत्व एक साधन के वेब पृष्ठों के लिए एक अलग दस्तावेज़ मॉडल शामिल करने के लिए के रूप में पृष्ठों में शरीर तत्व बदल देता है।

  • iframeतत्व, दूसरे हाथ पर, एक पृष्ठ के मुख्य भाग को प्रतिस्थापित नहीं करता। यह सामग्री के एक ब्लॉक के भीतर एम्बेडेड एक नए ब्राउज़िंग संदर्भ को शामिल करने के साधन के रूप में कार्य करता है। यह फ्रेमसेट मॉडल के रूप में एक ही प्रयोज्य या पहुंच की समस्याओं से ग्रस्त नहीं है और इसका उपयोग लगभग कहीं भी किया जाता है, जिसमें एक एम्बेडेड ब्राउज़िंग संदर्भ (सबसे विपुल उदाहरण होने के कारण विजेट) को शामिल करने की आवश्यकता होती है। 1

iframeएचटीएमएल 5 में भी है कि यह किया जा सकता है अतिरिक्त सुविधाओं पर ले जाता सैंडबॉक्स , मूल दस्तावेज़ तय करने के लिए क्या यह के भीतर क्रियान्वित हो जाता है की इजाजत दी। यह अविश्वासित सामग्री को एम्बेड करते समय मूल दस्तावेज (और मूल दस्तावेज के आगंतुक) के लिए सुरक्षा के कुछ माप की अनुमति देता है।


टिप्पणियाँ

नोट 1:object तत्व कुछ हद तक साथ ओवरलैप करता iframeतत्व है, लेकिन यह एक अलग सामग्री मॉडल (जो प्लग इन के लिए मुख्य रूप से करना है) है, चेतावनियां के अपने स्वयं के सेट है, और सैंडबॉक्सिंग नहीं है विशेषताओं का iframeतत्व है।


8
"यूटिलिटी" और "एक्सेसिबिलिटी" के लिए फ्रेमसेट तत्व खराब क्यों हैं लेकिन आइफ्रेम तत्व नहीं हैं?
मेरिटॉन

18
@meriton फ़्रेमसेट एक ही प्राथमिकता के साथ कई दस्तावेज़ों से बाहर एक पृष्ठ का निर्माण करता है: इससे स्क्रीन पाठकों के लिए चुनौतियां होती हैं जो यह नहीं जानते हैं कि किसी भी विशिष्ट समय पर ध्यान केंद्रित करने के लिए कौन से दस्तावेज़ हैं। दूसरी ओर, iframe तत्व, बस एक ही पृष्ठ में एम्बेड किए गए हैं: यह एक एम्बेडेड छवि होने से अलग नहीं है।

9
स्क्रीन रीडर्स के लिए चुनौतियां: जिन अंधे लोगों से मैंने बात की है, उन्होंने कहा है कि वे नेविगेशन को एक अलग फ्रेम में फंसना पसंद करते हैं (iFrame नहीं) क्योंकि वे इसे नजरअंदाज कर सकते हैं और केवल जब वे चाहते हैं तो उन्होंने इसे पढ़ा है। स्क्रीन पाठकों के लिए असली अपराधी जावास्क्रिप्ट और AJAX है जो वर्तमान स्क्रीन पाठकों के साथ पृष्ठों को पूरी तरह से अनुपयोगी बनाता है (ठीक है, मेरी जानकारी लगभग 10 महीने पुरानी है)। स्क्रीन पाठकों के साथ मेरा व्यक्तिगत अनुभव इसका समर्थन करता है।
ग्लेनपेटर्सन

4
मैं सोच रहा था कि 2005 के एक बहुत अक्सर पहुँच क्षमता की आवश्यकता है एक अद्यतन के लिए अतिदेय नहीं किया गया है। उस पर असंतोष के लिए धन्यवाद।
एरिक रेपेने

1
@GlenPeterson फ्रेम तत्व के बिना एक ही प्रभाव सीएसएस का उपयोग करके ब्लॉक तत्व को व्यूपोर्ट में तय किया जा सकता है। अगर यह है कि आप इस तरह के नेविगेशन चाहते हैं तो यह कैसे किया जाना चाहिए। यह अधिक समझ में आता है।
नेट्रॉक्स

8

फ़्रेम (फ़्रेमसेट) दस्तावेज़ के रूप में कार्य करता है। इसे हटा दिया गया है क्योंकि यह HTML दस्तावेज़ संरचना और नेविगेशन को तोड़ता है। उदाहरण के लिए। आपके पास एक फ्रेम में लिंक हैं, दूसरे में सामग्री, आप एक नई विंडो में पेज से लिंक नहीं खोल सकते, आप विशिष्ट उप-पृष्ठ, आदि से लिंक नहीं कर सकते।

दूसरी ओर iframes कुछ भी नहीं टूटेगा अगर सही तरीके से उपयोग किया जाता है क्योंकि वे सैंडबॉक्स सामग्री के लिए हैं (जैसे। विज्ञापन)।


7

फ़्रेमसेट का उपयोग अक्सर ऐसे तरीके से किया जाता है जहां वे वेब के मूलभूत सिद्धांत को तोड़ते हैं - प्रत्येक दस्तावेज़ में एक एकल URL होता है। इससे लिंकिंग, बुकमार्क, खोज इंजन आदि के साथ समस्याएं होती हैं।

एक फ्रेमसेट का विशिष्ट उपयोग लोगो या हेडर के साथ शीर्ष पर एक फ्रेम होगा, एक मेनू के साथ एक फ्रेम, और एक सामग्री फ्रेम। लेकिन खोज इंजन इंडिविजुअल पेजों को इंडेक्स करता है, इसलिए जब आप Google में कोई पेज ढूंढते हैं, तो वह सीधे फ्रेमसेट के बिना कंटेंट पेज से लिंक हो जाता है, जिससे आप नेविगेशन खो देते हैं। लिंक और बुकमार्क के साथ समस्या यह है कि आप आमतौर पर फ़्रेमसेट के अंदर एक विशेष सामग्री पृष्ठ को लिंक या बुकमार्क करना चाहते हैं, बिना फ़्रेमसेट खोए। ऐसा करने का कोई आसान तरीका नहीं है।

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

तो मूल रूप से एक फ्रेमसेट का उपयोग करने के कोई फायदे नहीं हैं, बस बहुत सारी समस्याएं हैं।

IFrames का उपयोग उसी तरह किया जा सकता है जिस तरह से फ्रेमसेट का उपयोग किया गया था, और उस स्थिति में वे भी समान समस्याएं पैदा करते हैं। लेकिन iframes के कई वैध उपयोग भी हैं जो समान समस्याओं को जन्म नहीं देते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.